Zrzut systemowy

Gdy wystąpi awaria maszyny JVM, maszyna JVM żąda od systemu operacyjnego wygenerowania zrzutu systemowego.

Zrzut systemowy składa się z całej pamięci używanej przez maszynę JVM. Obejmuje to stertę aplikacji wraz ze wszystkimi bibliotekami JVM i bibliotekami użytkowników. Zrzuty systemowe umożliwiają personelowi serwisowi IBM® wygląd stanu maszyny JVM w czasie awarii i pomoc w procesie określania problemu. Ze względu na to, że zrzut systemowy zawiera całą pamięć przydzieloną przez proces JVM, pliki zrzutów systemowych mogą być bardzo duże.

Położenie generowanego zrzutu systemowego można znaleźć w danych wyjściowych, które są wyświetlane w konsoli po awarii. Poniżej znajduje się przykład danych wyjściowych:
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 "".

W tym przykładzie wirtualna maszyna języka Java wygenerowała zrzut w pliku D:\core.20040817.131302.2168.dmp.

Maszyna JVM próbuje wygenerować plik zrzutu systemowego w jednym z następujących katalogów (wymienionych w kolejności wykonywania operacji):
  1. Dowolny katalog określony w wierszu komend, na przykład za pomocą opcji -Xdump:< agent>:file lub -Xdump:directory .
  2. Katalog wskazyany przez zmienną środowiskową IBM_COREDIR.
  3. Bieżący katalog.
  4. Katalog wskazyany przez zmienną środowiskową TMPDIR.
  5. Katalog C:\Temp

Użyj opcji -Xdump:what , aby znaleźć bieżącą konwencję nazewnictwa dla wszystkich plików zrzutu. Użyj opcji -Xdump:help , aby dowiedzieć się, jak zmienić te ustawienia.

Aby zrzuty systemowe były bardziej prywatne, należy ustawić zmienną środowiskową IBM_COREDIR, jeśli użytkownik jest zaniepokojony hasłami i innymi szczegółami zabezpieczeń zawartymi w zrzucie systemowym.