-XX:HitachiCallToString(ローカル変数情報出力オプション)
形式
-XX:HitachiCallToString=<適用範囲>
説明
<適用範囲>に該当するクラスのローカル変数オブジェクト対して取得したStringオブジェクトの文字列を,変数値を表現する文字列として出力します。
なお,ローカル変数に格納されているオブジェクトがない場合,またはJavaVM内部のオブジェクトの場合は,出力されません。
- デフォルト値
- -XX:HitachiCallToString=minimal
- 前提オプション
- -XX:+HitachiLocalsInThrowable
引数
- <適用範囲>
- minimalまたはfullを指定します。
- minimal:
- java.langパッケージ内の次に示すクラスが対象になります。
- String
- StringBuffer
- Boolean
- Byte
- Character
- Short
- Integer
- Long
- Float
- Double
- なお,空文字("")を指定した場合も,minimalと同じです。
- full:
- すべてのクラスおよび配列型が対象になります。
出力例
Javaプログラム例3を使用した出力例(簡易出力フォーマット)を,次に示します。
- -XX:HitachiCallToString=minimalの場合
at Example3.method(Example3.java:18)
locals:
(Example3) this = <0xaa07db58>
(java.lang.String) l1 = <0xae173a28> "local 1"
(java.lang.StringBuffer) l2 = <0xaa07dca0> "local 1 + local 2"
(java.lang.Boolean) l3 = <0xaa07de18> "false"
(java.lang.Character) l4 = <0xaa07df68> "X"
(java.lang.Long) l5 = <0xaa07e078> "-9223372036854775808"
(java.lang.Object) l6 = <0xaa07e1a8>
(java.lang.Object[]) l7 = <0xaa07e298>
at Example3.main(Example3.java:4)
locals:
… |
- -XX:HitachiCallToString=fullの場合
at Example3.method(Example3.java:18)
locals:
(Example3) this = <0xaa07db58> "I am an Example3 instance."
(java.lang.String) l1 = <0xae173a28> "local 1"
(java.lang.StringBuffer) l2 = <0xaa07dca0> "local 1 + local 2"
(java.lang.Boolean) l3 = <0xaa07de18> "false"
(java.lang.Character) l4 = <0xaa07df68> "X"
(java.lang.Long) l5 = <0xaa07e078> "-9223372036854775808"
(java.lang.Object) l6 = <0xaa07e1a8> "Thread[Thread-0,5,main]"
(java.lang.Object[]) l7 = <0xaa07e298> "[Ljava.lang.Thread;@26e431"
at Example3.main(Example3.java:4)
locals:
… |
注意事項
- ローカル変数情報を完全に収集するためには,javacでclassファイルを生成する際に,-gオプションまたは-g:varsオプションを付加してclassファイル内にローカル変数情報を埋め込んでおく必要があります。-gオプションまたは-g:varsオプションを付加しないで作成されたclassファイルについては,収集可能な範囲でローカル変数情報が出力されます。