2013-11-21 37 views
1

我發現了堆轉儲可以用java命令參數採取:-XX:+ HeapDumpOnOutOfMemoryError上的OutOfMemoryError寫堆轉儲和-XX:+ HeapDumpOnCtrlBreak寫堆與CTRL線程轉儲一起傾倒+打破。需要採取堆轉儲後JVM EXCEPTION_ACCESS_VIOLATION

現在我需要堆轉儲當我收到以下錯誤:

A fatal error has been detected by the Java Runtime Environment: 
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x5fb62488, pid=6332, tid=6336 

我收到hs_err_pid6332.log,但我需要堆轉儲在HPROF格式,這樣我可以在內容運行OQL 。

你能指導我嗎?提前致謝!

+0

你爲什麼要堆轉儲後JNI模塊只提領壞指針? – bmargulies

+0

我實際上在程序中注入了這個不好的代碼。崩潰後,我想分析程序變量保存的值。我需要這個特殊原因。 – kajarigd

回答

2

您可以提取從從撞擊產生的核心文件的HPROF堆轉儲:

jmap -dump:format=b,file=heap.hprof ${path_to_java_exe} ${path_to_core} 
相關問題