システム・ダンプ

JVM クラッシュが発生すると、JVM はオペレーティング・システムにシステム・ダンプを生成するよう要求します。

システム・ダンプは、JVM によって使用中のすべてのメモリーで構成されています。これには、アプリケーション・ヒープ、およびすべての JVM ライブラリーとユーザー・ライブラリーが含まれます。 システム・ダンプを使用すると、 IBM® サービス担当員は、クラッシュ時の JVM の状態を確認し、問題判別プロセスを支援することができます。 システム・ダンプには JVM プロセスによって割り振られたメモリーがすべて含まれているため、システム・ダンプ・ファイルは非常に大きくなる場合があります。

生成されたシステム・ダンプの場所は、クラッシュ後にコンソールに表示される出力で確認できます。 出力の例を以下に示します。
Unhandled exception
Type=Segmentation error vmState=0x00000000
Windows_ExceptionCode=c0000005 J9Generic_Signal=00000004 
ExceptionAddress=000007FFFF2D90C2 ContextFlags=0010001f
Handler1=000007FFFF4EEF80 Handler2=000007FFFF4B2890
RDI=00000000003715D0 RSI=0000000000378490 RAX=0000000000000000 RBX=00000000FFFFFFFF
RCX=0000000000389E00 RDX=0000000003DB18E8 R8=0000000000000001 R9=0000000000000001
R10=0000000001594EF0 R11=0000000003D50540 R12=0000000003D50540 R13=0000000000000001
R14=0000000003DB18E8 R15=0000000000389E00
RIP=000007FFFF2D90C2 RSP=000000000023F218 RBP=0000000000000001 GS=002B
FS=0053 ES=002B DS=002B
XMM0 000000000000027f (f: 639.000000, d: 3.157079e-321)
XMM1 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM2 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM3 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM4 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM5 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM6 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM7 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM8 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM9 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM10 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM11 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM12 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM13 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM14 0000000000000000 (f: 0.000000, d: 0.000000e+000)
XMM15 0000000000000000 (f: 0.000000, d: 0.000000e+000)
Module=C:\test\sdk\jre\bin\default\j9trc26.dll
Module_base_address=000007FFFF2D0000 Offset_in_DLL=00000000000090c2
Target=2_60_20101120_069090 (Windows Server 2008 R2 6.1 build 7600)
CPU=amd64 (4 logical CPUs) (0x1bfefb000 RAM)
----------- Stack Backtrace -----------
---------------------------------------
JVMDUMP006I Processing dump event "gpf", detail "" - please wait.
JVMDUMP032I JVM requested System dump using 'C:\Users\Administrator\core.20101122.
101637.7148.0001.dmp' in response to an event
JVMDUMP010I System dump written to C:\Users\Administrator\core.20101122.101637.
7148.0001.dmp
JVMDUMP032I JVM requested Java dump using 'C:\Users\Administrator\javacore.
20101122.101637.7148.0002.txt' in response to an event
JVMDUMP010I Java dump written to C:\Users\Administrator\javacore.20101122.101637.
7148.0002.txt
JVMDUMP032I JVM requested Snap dump using 'C:\Users\Administrator\Snap.20101122.
101637.7148.0003.trc' in response to an event
JVMDUMP010I Snap dump written to C:\Users\Administrator\Snap.20101122.101637.7148.
0003.trc
JVMDUMP013I Processed dump event "gpf", detail "".

この例では、JVM によってファイル D:¥core.20040817.131302.2168.dmp にダンプが生成されています。

JVM はシステム・ダンプ・ファイルを以下のいずれかのディレクトリーに生成しようとします (優先順位順)。
  1. コマンド行に指定された任意のディレクトリー。例えば、-Xdump:<agent>:file or -Xdump:directoryオプションを使用します。
  2. 環境変数 IBM_COREDIR でポイントされているディレクトリー
  3. 現行ディレクトリー
  4. 環境変数 TMPDIR でポイントされているディレクトリー
  5. C:&#xa5;Temp ディレクトリー

すべてのダンプ・ファイルの現行の命名規則を調べるには、-Xdump:what を使用します。 これらの設定の変更方法を確認するには、-Xdump:help を使用します。

システム・ダンプに含まれるパスワードやその他のセキュリティー情報について懸念がある場合は、環境変数 IBM_COREDIR を設定することによって、システム・ダンプの機密性を高めることができます。