javatrace(トレース情報の収集)
形式
javatrace <coreファイル名> <実行ファイル名> [<出力ファイル名>] [-l <ライブラリファイル名> ...]
機能
coreファイルからスタックトレース情報を取得します。なお,このコマンドは,UNIX用です。
このコマンドは,JavaVMが異常終了してcoreファイルを生成した場合,その異常終了の原因究明に必要な情報を取得するために実行するコマンドです。プロセスダウン時の詳細要因などが調査できます。
引数
- <coreファイル名>
-
coreファイル名を指定します。
- <実行ファイル名>
-
coreファイルを生成した実行ファイル名を指定します。
- <出力ファイル名>
-
出力ファイル名を指定します。
省略した場合は,カレントディレクトリの"javatrace.log"に出力されます。
- -l <ライブラリファイル名>
-
使用したライブラリファイルを指定します。
共用ライブラリが絶対パスで実行ファイルに取り込まれている場合は,自動的に読み込まれるため,指定する必要はありません。
戻り値
- 0:
-
正常終了しました。
- 1:
-
異常終了しました。
入力例
JavaVMが異常終了してcoreファイルを生成した場合,次のメッセージが表示されます。このメッセージ内のjavatraceコマンドの文字列を実行します。
なお,このメッセージは,異常終了時に生成されるエラーリポートファイル(hs_err_pid<プロセスID>.log)にも出力されます。
: # You can get further information from javatrace.log file generated # by using javatrace command. # usage: javatrace core-file-name loadmodule-name [out-file-name] [-l(library-name)...] # Please use javatrace command as follows and submit a bug report # to Hitachi with javatrace.log file: # [/opt/Cosminexus/jdk/bin/javatrace core /opt/Cosminexus/CC/server/bin/cjstartsv] #
- coreファイル名がcoreの場合
/opt/Cosminexus/jdk/bin/javatrace core /opt/Cosminexus/CC/server/bin/cjstartsv
OSによっては実際に出力されるcoreファイル名がcore.<プロセスID>になる場合があります。その場合は,実際に出力されたcoreファイル名をjavatraceの引数に指定してください。
- coreファイル名がcore.<プロセスID>の場合
/opt/Cosminexus/jdk/bin/javatrace core.8326 /opt/Cosminexus/CC/server/bin/cjstartsv
出力メッセージ
次のエラーメッセージまたは警告メッセージを出力した場合,スタックトレース情報は出力されません。
項番 |
エラーメッセージ |
説明 |
---|---|---|
1 |
usage : javatrace core-filename loadmodule-name [out-filename] [-llibrary-name...] |
javatrace コマンドへの引数の指定が間違っています。 |
2 |
javatrace: Cannot open file-name :No such file or directory |
<出力ファイル>で指定したファイル以外のファイル(file-name)が見つかりません。 |
3 |
javatrace: Cannot open file-name : Permission denied |
ファイル(file-name)の読み込みが許可されていません。 |
4 |
javatrace : Cannot create file-name : Already exist |
<出力ファイル>に指定したファイル(file-name)がすでに存在しています。 |
5 |
* unknown core type(XXXXXXX) ignored. |
<coreファイル名>で指定したファイルは,coreファイルではありません。 |
6 |
* ERROR : file-name, unknown magic(0xXXXX) |
<実行ファイル名>で指定したファイルは,実行ファイルではありません。 |
7 |
WARNING : core file may not match loadmodule (core file from ‘loadmodule-name') |
<実行ファイル名>で指定した実行ファイルと,<coreファイル名>で指定したcoreファイルから取り出した実行ファイル(loadmodule-name)が一致していません。 |
8 |
javatrace : Bad argument : argument-name is directory |
指定したファイル(file-name)はディレクトリです。 |
9 |
* ERROR : library-name open : No such file or directory |
実行ファイルが取り込んだ共用ライブラリ(library-name)が見つかりません。共用ライブラリが相対パスで取り込まれている場合には,-lオプションで共用ライブラリを明示的に指定する必要があります。 |
10 |
javatrace : illegal option -- x |
誤ったオプション文字(x)が指定されています。 |
11 |
javatrace : Cannot create file-name : Permission denied |
<出力ファイル>で指定したファイル(file-name)の出力先に書き込み権限がありません。 |
注意事項
-
javatraceコマンドはcoreファイルが生成されたマシンで実行してください。
-
JavaVMが異常終了した場合に標準出力とエラーリポートファイルに出力されるメッセージで,javatraceコマンドの第2引数が,次のように絶対パスのロードモジュール名になっていないことがあります。
# # You can get further information from javatrace.log file generated # by using javatrace command. # usage: javatrace core-file-name loadmodule-name [out-file-name] [-l(library-name)...] # Please use javatrace command as follows and submit a bug report # to Hitachi with javatrace.log file: # [/opt/Cosminexus/jdk/bin/javatrace /users/Java/core ../java] #
その場合は,javatraceコマンドの第2引数に指定するロードモジュール名を,絶対パスに変換してから実行してください。