-XX:[+|-]HitachiLocalsInStackTrace(スレッドダンプ出力時のローカル変数出力オプション)
形式
- -XX:+HitachiLocalsInStackTrace
- スレッドダンプ出力時のスタックトレースに,ローカル変数情報を出力します。
- -XX:-HitachiLocalsInStackTrace
- スレッドダンプ出力時のスタックトレースに,ローカル変数情報を出力しません。
説明
出力例
Javaプログラム例2を使用した出力例を,次に示します。
- -XX:+HitachiLocalsSimpleFormatオプションおよび-XX:+HitachiTrueTypeInLocalsオプションが指定されている場合
"main" prio=1 tid=0xb6e88d20 nid=0xb7492080 runnable [bfffb000..bfffb474]
at Example2.method(Example2.java:15)
- locked <0xab040550> (a Example2)
locals:
(Example2) this = <0xab040550> (Example2)
(int) l1 = 1
(float) l2 = 2.000000
(java.lang.String) l3 = <0xaf112cc0> (java.lang.String)
(java.lang.Character) l4 = <0xab040698> (java.lang.Character)
(java.lang.Object) l5 = <0xab0407c8> (java.lang.Thread)
(java.lang.Object[]) l6 = <0xab0408b8> (java.lang.Thread[])
at Example2.main(Example2.java:4)
locals:
(java.lang.String[]) args [arg1] = <0xab040540> (java.lang.String[])
(Example2) e2 = <0xab040550> (Example2) |
注意事項
- ローカル変数情報を完全に収集するためには,javacでclassファイルを生成する際に,-gオプションまたは-g:varsオプションを付加してclassファイル内にローカル変数情報を埋め込んでおく必要があります。-gオプションまたは-g:varsオプションを付加しないで作成されたclassファイルについては,収集可能な範囲でローカル変数情報が出力されます。
- 一般にスタックトレース情報の収集を行うスレッドと収集対象のスレッドは一致しません。このため,情報収集を行うためには,対象スレッドを停止させる必要があり,toStringメソッドを呼び出すことはできません。このため,-XX:HitachiCallToStringオプションの指定は無効になります。
- 制御構造が複雑で行数が多いメソッドのローカル変数情報を出力する場合,解析に時間が掛かるため,拡張スレッドダンプの出力やスレッドスタックトレースの取得に時間が掛かることがあります。