7.10.1 -XX:HitachiCallToString
該当するクラスのローカル変数オブジェクトに対して取得したStringオブジェクトの文字列を、変数値を表現する文字列として出力します。
説明
適用範囲に該当するクラスのローカル変数オブジェクトに対して取得したStringオブジェクトの文字列を、変数値を表現する文字列として出力します。
なお、ローカル変数に格納されているオブジェクトがない場合、またはJavaVM内部のオブジェクトの場合は、出力されません。
- 前提オプション
-
-
-XX:+HitachiLocalsInThrowable
-
書式
-XX:HitachiCallToString=適用範囲
指定できる値
- 適用範囲
-
型:String
minimalを指定します。
java.langパッケージ内の次に示すクラスが対象になります。
-
String
-
StringBuffer
-
Boolean
-
Byte
-
Character
-
Short
-
Integer
-
Long
-
Float
-
Double
なお、空文字("")を指定した場合も、minimalと同じです。
-
デフォルト値
- 定義項目の省略
-
-XX:HitachiCallToString=minimal
出力例
次のJavaプログラム例を使用した出力例(簡易出力フォーマット)を、次に示します。
- Javaプログラム例
-
class Example3 { public static void main(String[] args) { Example3 e3 = new Example3(); e3.method(); // 4行目 } void method() { String l1 = "local 1"; StringBuffer l2 = new StringBuffer(l1); l2.append(" + local 2"); Boolean l3 = new Boolean(false); Character l4 = new Character('X'); Long l5 = new Long(Long.MIN_VALUE); // long型の最小値 Object l6 = new Thread(); Object[] l7 = new Thread[10]; try { <例外発生!> // 18行目 } catch (Exception e) { e.printStackTrace(); } } public String toString() { return "I am an Example3 instance."; } }
- 出力例1
-
-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: ...
注意事項
ローカル変数情報を完全に収集するためには、javacでclassファイルを生成する際に、-gオプションまたは-g:varsオプションを付加してclassファイル内にローカル変数情報を埋め込んでおく必要があります。-gオプションまたは-g:varsオプションを付加しないで作成されたclassファイルについては、収集可能な範囲でローカル変数情報が出力されます。