5.10 JavaVMスタックトレース情報

ここでは,スタックトレースに出力される情報のうち,JavaVMで拡張された内容について説明します。

サーバやアプリケーションでトラブルが発生した場合,トラブル発生までのスタックトレースの内容を確認することで,トラブル発生の要因を調査できます。

スタックトレースは,次のどれかのタイミングで出力されます。

JavaVMでは,サーバを起動するときのオプションの指定によって,スタックトレースにJavaメソッドのローカル変数についての情報を出力できます。例外発生時にJavaメソッドに定義されていたローカル変数の情報は,トラブルの要因を分析するために有効です。

なお,ここで対象にするローカル変数とは,メソッドに渡される引数およびインスタンスメソッドでの呼び出しの対象になるオブジェクト(this)のことです。ローカル変数情報には,これらのローカル変数の変数名,型名,およびローカル変数の値が出力されます。なお,型名は,基本形名,クラス名(インタフェース名を含みます)または配列形名のことです。

スタックトレースにローカル変数情報を出力するためのオプションを,次の表に示します。JavaVMの資料取得の設定については,「3.3.19 JavaVMの資料取得の設定」を参照してください。

表5-29 スタックトレースにローカル変数情報を出力するためのオプション

起動オプションスタックトレースを出力するタイミング同時に指定できるオプション
-XX:+HitachiLocalsInThrowableサーバまたはアプリケーション内で例外が発生したとき
  • -XX:+HitachiLocalsSimpleFormat
  • -XX:+HitachiTrueTypeInLocals
  • -XX:HitachiCallToString=<適用範囲指定>
-XX:+HitachiLocalsInStackTraceJavaVMのスレッドダンプを出力したとき
  • -XX:+HitachiLocalsSimpleFormat
  • -XX:+HitachiTrueTypeInLocals

注※ ただし,発生した例外が「java.lang.StackOverflowError」または「java.lang.OutOfMemoryError」の場合,スタックトレースにローカル変数は出力されません。


次に,それぞれのオプションを指定した場合に出力される内容について,例を基に説明します。それぞれのオプションを指定した時に出力される項目の詳細については,次の個所を参照してください。

<この節の構成>
5.10.1 -XX:+HitachiLocalsInThrowableオプションが指定されている場合
5.10.2 -XX:+HitachiLocalsInStackTraceオプションが指定されている場合