Эдуардо Моралес:
Я пытался сбросить файл кучи, когда OutOfMemoryError происходит на данном процессе Java с использованием Jmap.
Я был в состоянии сбросить файл кучи, но я хочу, чтобы добавить флаг HeapDumpOnOutOfMemoryError к Jmap, но я думаю, что я делаю что-то неправильно. Я делаю что-то неправильно? Я пробовал:
jmap -J-XX:+HeapDumpOnOutOfMemoryError -dump:live,file=/home/eduardo2/dumpfile.hprof 18763
Когда я запускаю выше него просто говорит следующее - но не ждать OutOfMemoryError:
>> Dumping heap to /home/eduardo2/dump21file.hprof ...
>> Heap dump file created
wwerner:
Вы путаете две разные вещи:
- Используйте
jmap
для захвата дампа кучи от запущенного процесса , как вы делали. См https://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html . - Используйте
-XX:+HeapDumpOnOutOfMemoryError
на процессе Java вы ожидаете , чтобы броситьOOM
. Если происходит исключение, дамп будет записан в текущем каталоге. См https://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/clopts.html#gbzrr