2012-06-08 14 views
6

Gibt es trotzdem eine Core/Heap-Dump-Datei zu generieren, wenn JVM abstürzt? Da diese Dateien in der Regel sehr hilfreich sind, um Fehler im Code zu finden. Jede Hilfe wird geschätzt.Kann Sun JDK Core/Heap-Dump-Dateien generieren, wenn JVM abstürzt?

cheng

+2

Beenden aufgrund einer Idee ist ein Absturz. –

+0

Kann "neue OutOfMemoryError() werfen" eine Dump-Datei generieren? Ich habe es versucht, aber gescheitert. Falls nicht, können Sie eine Situation angeben, unter der eine Core/Heap-Dump-Datei generiert werden kann. Vielen Dank. – cheng

+0

Die IBM JVM kann programmatisch aufgefordert werden, diese Speicherauszüge zu generieren, die Sie dann kurz vor System.exit (0) ausführen können. Ich kenne keinen herstellerunabhängigen Weg, dies zu tun. –

Antwort

12

Mit den folgenden JVM-Optionen:

-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath="/tmp" 

JVM wird der Inhalt von Heap in eine Datei im angegebenen Verzeichnis-Dump. Beachten Sie, dass dies nur passiert, wenn OutOfMemoryError ausgelöst wird, da Dump nicht wirklich benötigt wird, wenn JVM aus einem anderen Grund abgestürzt ist.

Edit: "Boolesche Optionen werden mit -XX: + eingeschaltet und mit -XX: - ausgeschaltet." docs

+0

Es funktioniert für mich ~ Vielen Dank. – cheng

+3

Sollte -XX: + HeapDumpOnOutOfMemoryError (mit Plus-Symbol) sein, weil minus es tatsächlich ausschaltet – gerrytan