トレース情報出力の形式を説明します。
トレース情報として出力される情報には、以下の2種類があります。
enter情報
トレース対象に指定されたメソッドが呼び出されたことを示す情報です。
以下に出力形式を示します。
[日時,]in,スレッド名,クラス名,メソッド名[,PARAM:引数の情報] |
exit情報
トレース対象に指定されたメソッドから復帰したことを示す情報です。
以下に出力形式を示します。
[日時,]out,スレッド名,クラス名,メソッド名[,RET:戻り値の情報] |
Java VMは、enter情報およびexit情報を見つけるたびにトレース情報を出力します。
正常にトレース情報が出力された場合、enter情報とexit情報は、対となって出力されます。
enter情報およびexit情報は、1行で示されます。
1行とは、復帰改行文字までをいいます。
復帰改行文字は、メソッドトレースの動作環境に依存します。
文字コードは、現在動作中のJavaに定義された文字コードセットに依存します。
各項目の説明
項目名 | 意味 | 形式 |
---|---|---|
日時 | トレース情報出力時の日時です。 | DD/MM/YYYY hh:mm:ss:msec
YYYY、msec以外は、必ず2桁で出力されます。 Calendarクラスの初期化中の処理をトレースする場合、時刻の取得ができないため、表示は、“??/??/???? ??:??:??:???”と表示されます。 |
in | enter情報であることを示します。 | ASCIIコード“in”の文字列です。 |
out | exit情報であることを示します。 | ASCIIコード“out”の文字列です。 |
スレッド名 | メソッドを呼び出したスレッドにつけられたスレッドの名前です。 | |
クラス名 | 呼び出されたメソッドが配置されたクラス名です。 | パッケージ名から出力され、パッケージ、クラスのセパレータは“.”で示されます。 |
メソッド名 | 呼び出されたメソッド名です。 | |
PARAM: | 引数の表示の開始を示します。 | ASCIIコード“PARAM:”の文字列です。 例1)文字列形式の引数が1つ 例2)文字列形式の引数の次に論理型の引数の2つを持つ場合 例3)引数がない場合 |
RET: | 戻り値の表示の開始を示します。 | ASCIIコード“RET:”の文字列です。 |
引数や戻り値の出力形式
引数や戻り値は、そのデータ型により、次の形式で出力されます。
データ型 | 表示形式 | 例 |
---|---|---|
戻り値なし | “void”という文字列 | void |
論理型 | (型):ブール値 | (boolean):true |
数値型 | (型):10進表記の数字列 | (int):100 |
byte型 | (型):16進表記の数字列 | (byte):61 |
char型 | (型):文字 | (char):A |
String型 | (型):文字列 | (String):あいうえお |
オブジェクト | (クラス名):toStringからの復帰文字列 | (classA):data1=100,dataA=アイウエオ |
論理型の配列(1次元) | (型):配列数:[ブール値][ブール値]... | (boolean):3:[true][false][true] |
数値型の配列(1次元) | (型):配列数:[数字列][数字列]... | (short):2:[1][2] |
byte型の配列(1次元) | (型):配列数:[16進表記の数字列][16進表記の数字列]... | (byte)2:[61][62] |
char型の配列(1次元) | (型):配列数:[文字][文字]... | (char)2:[あ][A] |
String型の配列(1次元) | (型):配列数:[文字列][文字列]... | (String)2:[あいう][ABC] |
オブジェクトの配列(1次元) | (クラス名):配列数:[toStringからの復帰文字列][toStringからの復帰文字列]... | (classA)2:[data1=100,dataA=アイウエオ][data1=200,dataA=ABCDEF] |
論理型の配列(2次元以上) | (型):配列数,配列数...:[[ブール値][ブール値]...][[ブール値][ブール値]...]... | (boolean):2,3:[[true][false][true]][[true][true][true]] |
数値型の配列(2次元以上) | (型):配列数,配列数...:[[数字列][数字列]...] [[数字列][数字列]...]... | (short):2,2:[[1][2]] [[3][4]] |
byte型の配列(2次元以上) | (型):配列数,配列数...:[[16進表記の数字列][16進表記の数字列]...] [[16進表記の数字列][16進表記の数字列]...]... | (char)2,2:[[61][62]] [[63][64]] |
char型の配列(2次元以上) | (型):配列数,配列数...:[[文字][文字]...] [[文字][文字]...]... | (char)2,2:[[あ][A]] [[え][D]] |
String型の配列(2次元以上) | (型):配列数,配列数...:[[文字列][文字列]...] [[文字列][文字列]...]... | (String)2,2:[[あいう][ABC]] [[えおか][DEF]] |
オブジェクトの配列(2次元以上) | (クラス名):配列数,配列数...:[[toStringからの復帰文字列][toStringからの復帰文字列]...] [[toStringからの復帰文字列][toStringからの復帰文字列]...]... | (classA)2,2:[[data1=100,dataA=アイウエオ][data1=200,dataA=ABCDEF]] [[data1=300,dataA=かきくけこ][data1=400,dataA=GHIJKL]] |
参考
引数や戻り値が、各要素数が一定でない多次元配列の場合、引数や戻り値の情報には、不足している要素をnullの表示([])として出力されます。また、配列数も最大の要素数に合わせて出力されます。
引数や戻り値の例)
String[][] str = { {"Flintstones", "Fred", "Wilma"}, {"Rubbles", "Barney", "Betty", "Bam Bam"}, {"Jetsons", "George", "Jane", "Elroy", "Judy"}, {"Scooby Doo Gang", "Shaggy"} };
出力例(引数の場合です。戻り値の場合は、"PARAM"の代わりに"RET:"が出力されます。)
(略) PARAM:(String):4,5:[[Flintstones] [Fred] [Wilma] [] []] [[Rubbles] [Barney] [Betty] [Bam Bam] []] [[Jetsons] [George] [Jane] [Elroy] [Judy]] [[Scooby Doo Gang] [Shaggy] [] [] []]
null値の表示
引数や戻り値がオブジェクトであり、その値がnullの場合、次のように出力されます。
配列以外の場合・・・(オブジェクト名):[]
配列の場合・・・・・(オブジェクト名): :[]
文字関連の16進数表示
文字関連のデータ表示に16進表示を付加するには、制御ファイルに“valueLevel=addHex”と指定します。
文字関連のデータとは、以下のデータ型を持つ引数や戻り値のことです。
byte型
char型
String型
16進表示は、“引数や戻り値の出力形式”に示した表示形式の後ろに" Hex="で区切り、数字列で示します。
データ型 | 表示形式 | 例 |
byte型 | (byte):数字列 Hex=xxxx | (byte):61 Hex=0036 0031 |
char型 | (char):文字 Hex=xxxx | (char):a Hex=0061 |
String型 | (String):文字列 Hex=xxxx xxxx[ ...] | (String):abcd Hex=0061 0062 0063 0064 |
参考
次の場合、制御ファイルに“valueLevel=addHex”の指定がある場合でも、16進表示は抑止されます。
char型の場合、null文字
String型の場合、null文字列