5.8.1 シグナルが発生した場合
(1) 異常終了位置とシグナル種別
異常終了時の状態に応じて,次のどちらかの内容が出力されます。この内容は,JavaVMで拡張された出力内容です。
(a) シグナルを検出した場合
次のメッセージが出力されます。
#
# A fatal error has been detected by the Java Runtime Environment: |
次の内容が出力されます。
シグナルを検出した場合の出力内容
#
# 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) 内部論理エラーが発生した場合
次の内容が出力されます。
内部論理エラーが発生した場合の出力内容
#
# Internal Error (<ファイル名>:<行数> または,Internal Errorのコード), pid=<プロセスID>, tid=<スレッドID>
# <内部論理エラー種別>: 内部論理エラーメッセージ
#
# JRE version: <jreバージョン情報>
# Java VM: Java HotSpot(TM) <VM種別> (<Sunバージョン情報>-<バージョン情報>-<ビルド年月日> mixed mode<OS名>-<CPU種別> <圧縮OOP>)
#
# <coreファイル情報> |
注 Internal Errorには,ファイル名および行数の組み合わせ,またはInternal Errorのコードが出力されます。<内部論理エラー種別>には,発生した内部論理エラーの種類によって,"fatal error","guarantee(<論理式>) failed",または"Error"のどれかが出力されます。
(2) カレントスレッド情報
スレッドの種類に応じて次の3種類の情報が出力されます。
Current thread (<アドレス>): <スレッド名> "<スレッド名称>" [_<状態>, id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
または
Current thread (<アドレス>): <スレッド名> [_id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
または
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の場合
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) スタックトレース
次の内容が出力されます。ただし,Current threadがJavaThread以外の場合は出力されません。
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
<スタックトレース>
: |
(9) スレッド情報
次の内容が出力されます。
Java Threads: ( => current thread )
<アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
:
=><アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>, stack(<開始アドレス>,<終了アドレス>)]
Other Threads:
<アドレス> <スレッド名> [stack(<開始アドレス>,<終了アドレス>)] [id=<スレッドID>]
: |
(10) VMの状態
次の内容が出力されます。
VM state:<現在の状態>
VM Mutex/Monitor currently owned by a thread: <mutexs/moniter> |
注 この情報に続いて,ロック情報が出力される場合があります。
(11) メモリ情報
次の内容が出力されます。この内容は,JavaVMで拡張された出力内容です。
Memory :
<メモリ確保関数>:address<開始アドレス> - <終了アドレス>(size:<サイズ>)
:
Heap Size:<確保しているメモリサイズ>
Alloc Size:<使用中のメモリサイズ>
Free Size:<未使用のメモリサイズ> |
<メモリ確保関数>は,mmap()またはmalloc()のどちらかです。アドレスは16進数で表示されます。
各種メモリサイズの単位はバイトです。
(12) Javaヒープの使用状況
次の内容が出力されます。この内容は,JavaVMで拡張された出力内容です。
注※ 見出し部分は拡張スレッドダンプとエラーリポートファイルで次のように異なる。
拡張スレッドダンプの場合 | Heap Status
----------- |
エラーリポートファイルの場合 | Heap |
(13) Card tableマップアドレスの表示
次の内容が出力されます。
Card table byte_map: [<アドレス>,<アドレス>] byte_map_base: <アドレス> |
(14) Polling pageアドレスの表示
(15) Large pages 確保失敗情報
mmap()関数でのメモリ確保に失敗した場合に,失敗回数が出力されます。
Large page allocation failures have occurred <回数> times |
(16) CodeCache情報
次の内容が出力されます。
CodeCache: size=<全体サイズ> used=<使用済みサイズ> max_used=<最大サイズ> free=<空きサイズ>
bounds [<bottom>, <commit addr>, <reserve addr>]
total_blobs=<CodeBlobの総数> nmethods=<nmethodsの総数> adapters=<adapterの総数>
compilation: <enabled/disabled> |
(17) Event情報
イベントバッファの内容がすべて出力されます。
<イベント種別名> (<イベント数> events):
<イベントレコード>
: |
イベント情報はリングバッファで管理していて,イベント種別ごとに保持するイベント数の最大値は10です。イベント数が0の場合は<イベントレコード>には"No events"が出力されます。
出力できる<イベント種別>の出力例を次に示します。
- Compilation events
JITコンパイル情報
Compilation events (10 events):
Event: 0.923 Thread 0x00002aaab2f01800 389 b java.io.FileOutputStream::write (12 bytes)
Event: 0.923 Thread 0x00002aaab2f01800 nmethod 389 0x00002aaaac3ea490 code [0x00002aaaac3ea5e0, 0x00002aaaac3ea668]
: |
- GC Heap History
before GC,after GC情報
GC Heap History (4 events):
Event: 23.719 GC heap before
{Heap before GC invocations=0 (full 0):
def new generation max 154880K, total 9664K, used 345K (0.2% used/max, 3.6% used/total)
: |
- Deoptimization events
Deopt情報
Deoptimization events (10 events):
Event: 0.818 Thread 0x00002aaaaba7e000 Uncommon trap 24 fr.pc 0x00002aaaac3d1eec
Event: 0.818 Thread 0x00002aaaaba7e000 Uncommon trap 54 fr.pc 0x00002aaaac3d0dd8
: |
- Internal exceptions
internal exception情報
Internal exceptions (2 events):
Event: 0.025 Thread 0x00002aaaaba7e000 Threw 0x00000000db606140 at /hotspot/src/share/vm/prims/jni.cpp:4008
Event: 0.061 Thread 0x00002aaaaba7e000 Threw 0x00000000db649980 at /hotspot/src/share/vm/prims/jvm.cpp:1167
: |
- Events
クラスローダ情報など
Events (10 events):
Event: 0.080 loading class 0x00002aaab302e990
Event: 0.080 loading class 0x00002aaab302e990 done
Event: 4.286 Executing VM operation: EnableBiasedLocking
Event: 4.286 Executing VM operation: EnableBiasedLocking done
: |
(18) ライブラリ
次の内容に続いて,ローディングされているライブラリの一覧が出力されます。
Dynamic libraries:
<ライブラリ>
: |
(19) コマンドおよびVMパラメタ
次の内容が出力されます。この内容は,JavaVMで拡張された出力内容です。
Command : <コマンドライン>
Java Home Dir : <JDK実行環境インストールディレクトリ>
Java DLL Dir : <JDKのライブラリインストールディレクトリ>
Sys Classpath : <システムクラスパス>
User Args :
<コマンドオプション1>
<コマンドオプション2>
: |
(20) 環境変数
次の内容が出力されます。
Environment Variables:
<環境変数=値>
: |
(21) 登録済みシグナルハンドラ
次の内容が出力されます。
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進で出力された値です。
(22) マシン情報
次の内容が出力されます。この内容は,JavaVMで拡張された出力内容です。
注 <IPアドレス>には複数のIPアドレスが表示されることがあります。
(23) システム名,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情報> |
(24) 時間情報
次の内容が出力されます。
time: <実行日付>
elapsed time: <実行時間> seconds <(実行時間 形式出力)> |
- 注
- 実行日付の例を次に示します。
- 例:「Wed Aug 25 14:55:04 2004」
- 秒単位だけでは実行時間が把握しづらいため,<(実行時間 形式出力)>ではユーザが読みやすいように,(DAYS HOURS MINS SECS)フォーマットで出力します。
- (例) elapsed time: 900 seconds (0d 0h 15m 0s)
(25) 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ファイル> <ロードモジュール>] |