5.8.1 シグナルが発生した場合
(1) 異常終了位置とシグナル種別
異常終了時の状態に応じて,次のどちらかの内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
(a) シグナルを検出した場合
JDKのバージョンごとの出力メッセージを次に示します。
- JDK 6の場合の出力メッセージ
#
# A fatal error has been detected by the Java Runtime Environment: |
- JDK 5.0の場合の出力メッセージ
#
# An unexpected error has been detected by HotSpot Virtual Machine: |
JDK 6の場合を例に,出力内容を示します。
- シグナルを検出した場合の出力内容
#
# A fatal error has been detected by the Java Runtime Environment:
#
# <発生したシグナル名> (<シグナル番号>) at pc=<PCアドレス>, pid=<プロセスID>, tid=<スレッドID>
#
# JRE version: <jreバージョン情報>
# Java VM: Java HotSpot(TM) <VM種別> (<Sunバージョン情報>-<日立バージョン情報>-<ビルド年月日> mixed mode<OS名>-<CPU種別>)
# Problematic frame:
# <種別コード> [<シグナルが発生したライブラリ名>+<オフセット>]
# |
注 シグナルが発生した関数名が取り出せた場合,「<シグナルが発生したライブラリ名>+<オフセット>」に続いて,その関数名とオフセットが表示されることがあります。
(b) 内部論理エラーが発生した場合
JDKのバージョンごとの出力内容を次に示します。
- JDK 6の場合に内部論理エラーが発生したときの出力内容
#
# Internal Error (0xe0000000), pid=<プロセスID>, tid=<スレッドID>
# <内部論理エラー種別>: 内部論理エラーメッセージ
#
# JRE version: 6.0
# Java VM: Java HotSpot(TM) <VM種別> (<Sunバージョン情報>-<日立バージョン情報>-<ビルド年月日> mixed mode<OS名>-<CPU種別>) |
- 注 Internal Errorには,ファイル名および行数の組み合わせ,またはInternal Errorのコードが出力されます。<内部論理エラー種別>には,発生した内部論理エラーの種類によって,"fatal error","guarantee(<論理式>) failed",または"Error"のどれかが出力されます。
- JDK 5.0の場合に内部論理エラーが発生したときの出力内容
#
# Internal Error (5448524541440E4350500D8F※), pid=<プロセスID>, tid=<スレッドID>
#
# Java VM: Java HotSpot(TM) <VM種別> (<Sunバージョン情報>-<日立バージョン情報>-<ビルド年月日> mixed mode<OS名>-<CPU種別>)
#
# Error: 内部論理エラーメッセージ |
- 注※ Internal Errorには,ファイル名,および行番号を16進数に変換した文字列が出力されます。
(2) カレントスレッド情報
JDKのバージョンごとの出力内容を次に示します。
- JDK 6の場合
- スレッドの種類に応じて次の3種類の情報が出力されます。
Current thread (<アドレス>): <スレッド名> "<スレッド名称>" [_<状態>, id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
または
Current thread (<アドレス>): <スレッド名> [_id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
または
Current thread is native thread |
- JDK 5.0の場合
- スレッドの種類に応じて次の3種類の情報が出力されます。
Current thread (<アドレス>): <スレッド名> "<スレッド名称>" [_<状態>, id=<スレッドID>]
または
Current thread (<アドレス>): <スレッド名> [_id=<スレッドID>]
または
Current thread is native thread |
(3) シグナル情報の格納先アドレス
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
siginfo address: <アドレス>, context address: <アドレス> |
(4) シグナル情報
次の内容が出力されます。
- Windowsの場合
- EXCEPTION_ACCESS_VIOLATION(読み込み違反)
siginfo: ExceptionCode=<シグナル番号>, reading address <アドレス> |
- EXCEPTION_ACCESS_VIOLATION(書き込み違反)
siginfo: ExceptionCode=<シグナル番号>, writing address <アドレス> |
- EXCEPTION_ACCESS_VIOLATION(その他)
siginfo: ExceptionCode=<シグナル番号>, ExceptionInformation=<付加情報> |
- EXCEPTION_ACCESS_VIOLATION以外
siginfo: ExceptionCode=<シグナル番号>, ExceptionInformation=<付加情報1> <付加情報2> ・・・ |
- UNIXの場合(JDK 6を使用している場合)
siginfo:si_signo=<発生したシグナル名>, si_errno=<番号>, si_code=<番号>(<シグナル理由種別>), si_addr=<アドレス> |
- UNIXの場合(JDK 5.0を使用している場合)
siginfo:si_signo=<シグナル番号>, si_errno=<番号>, si_code=<番号>, si_addr=<アドレス> |
(5) siginfo情報(UNIXの場合)
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
siginfo structure dump (location: <siginfoのアドレス>)
<siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス>
...
<siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> |
注 <siginfoのアドレス>は16進数で出力されます。
(6) レジスタ情報
次の内容が出力されます。ただし,内部論理エラーの場合は出力されません。
注 UNIXの場合,BSPレジスタの値がデバッガ(gdb)の値と異なって出力されます。これは,デバッガではBSPの指すバッキングストア領域の内容を出力しており,BSPの指す位置を修正しているためです。
(7) スタックの先頭から格納されている情報
次の内容が出力されます。ただし,内部論理エラーの場合は出力されません。
Top of Stack: (sp=<スタックポインタのアドレス>)
<アドレス>: <格納されている内容>
: |
注 <格納されている内容>は16進数で出力されます。
(8) 命令コード情報
次の内容が出力されます。ただし,内部論理エラーの場合は出力されません。
Instructions: (pc=<プログラムカウンタのアドレス>)
<アドレス>: <命令コード>
: |
注 <命令コード>は16進数で出力されます。
(9) スタックトレース
次の内容が出力されます。ただし,Current threadがJavaThread以外の場合は出力されません。
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
<スタックトレース>
: |
(10) スレッド情報
JDKのバージョンごとの出力内容を次に示します。
- JDK 6の場合
Java Threads: ( => current thread )
<アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
:
=><アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
Other Threads:
<アドレス> <スレッド名> [stack(<開始アドレス>,<終了アドレス>)] [id=<スレッドID>]
: |
- JDK 5.0の場合
Java Threads: ( => current thread )
<アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>]
:
=><アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>]
Other Threads:
<アドレス> <スレッド名> [id=<スレッドID>]
: |
(11) VMの状態
次の内容が出力されます。
VM state:<現在の状態>
VM Mutex/Monitor currently owned by a thread: <mutexs/moniter> |
注 この情報に続いて,ロック情報が出力される場合があります。
(12) メモリ情報
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Memory :
<メモリ確保関数>:address<開始アドレス> - <終了アドレス>(size:<サイズ>)
:
Heap Size:<確保しているメモリサイズ>
Alloc Size:<使用中のメモリサイズ>
Free Size:<未使用のメモリサイズ> |
<メモリ確保関数>は,mmap()またはmalloc()のどちらかです。アドレスは16進数で表示されます。
各種メモリサイズの単位はバイトです。
(13) Javaヒープの使用状況
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
(14) ライブラリ
次の内容に続いて,ローディングされているライブラリの一覧が出力されます。
Dynamic libraries:
<ライブラリ>
: |
(15) コマンドおよびVMパラメタ
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Command : <コマンドライン>
Java Home Dir : <JDK実行環境インストールディレクトリ>
Java DLL Dir : <JDKのライブラリインストールディレクトリ>
Sys Classpath : <システムクラスパス>
User Args :
<コマンドオプション1>
<コマンドオプション2>
: |
(16) 環境変数
次の内容が出力されます。
Environment Variables:
<環境変数=値>
: |
(17) 登録済みシグナルハンドラ
次の内容が出力されます。
Signal Handlers:
<シグナル種別>:
[<シグナルハンドラアドレス>], sa_mask[0]=<シグナルマスク>, sa_flags=<特殊フラグ>
:
Changed Signal Handlers -
<シグナル種別>: [<シグナルハンドラアドレス>], sa_mask[0]=<シグナルマスク>, sa_flags=<特殊フラグ>
: |
出力内容の意味は次のとおりです。
- <シグナル種別>:/usr/include/sys/signal.hに定義されているシグナル名です。
- <シグナルハンドラアドレス>:シグナルハンドラのアドレスが16進で出力された値です。「ライブラリ名+オフセット」という形式で表示されることもあります。
- <シグナルマスク>:sigaction()で取り出せる構造のsa_maskフィールド値が16進で出力された値です。
- <特殊フラグ>:sigaction()で取り出せる構造のsa_flagsフィールド値が16進で出力された値です。
(18) マシン情報
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
注 <IPアドレス>には複数のIPアドレスが表示されることがあります。
(19) システム名,CPU,実メモリ,およびVM情報
次の内容が出力されます。
- Windowsの場合
OS: <OSバージョン>
CPU: <利用可能CPU数>,<CPU種別>
Memory: <実メモリ情報>
vm_info: <VM情報> |
- UNIXの場合
OS: <OSバージョン>
[uname:<uname出力>]
[libc:<libcのバージョン番号>]
[rlimit:<リミット値>]
[load average:<ロードアベレージ>]
[/proc/meminfo:</proc/meminfoの内容>]
CPU: <利用可能CPU数>[,<CPU種別>]
Memory: <実メモリ情報>
vm_info: <VM情報> |
(20) 時間情報
JDKのバージョンごとの出力内容を次に示します。
- JDK 6の場合
time: <実行日付>
elapsed time: <実行時間> seconds |
- JDK 5.0の場合※
Local Time = <実行日付>
Elapsed Time = <実行時間> |
- 注
- JDK 6およびJDK 5.0の実行日付の例を次に示します。
- 例:「Wed Aug 25 14:55:04 2004」
- 注※
- この内容は,日立のJavaVMで拡張された出力内容です。
(21) javatrace起動コマンドのコマンドライン(UNIXの場合)
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
# 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:
#[<インストールディレクトリ>/jre/bin/javatrace <coreファイル> <ロードモジュール>] |