Java Eclipse создает кучу-дамп в точке останова

Как сделать heapdump в точке останова в eclipse?

У моей Java-программы есть 2 версии, которые делают одно и то же двумя разными методами.
Один из этих методов приводит к исключению пространства кучи, а другой — нет.

Я смог получить heapdump для той, которая столкнулась с ошибкой, установив аргумент VM -XX:+HeapDumpOnOutOfMemoryError

Для программы, использующей метод, который не получает ошибку, я хочу получить дамп кучи в определенной точке останова. Как я могу это сделать?


person user3376293    schedule 06.08.2014    source источник


Ответы (2)


  1. Установите подключаемый модуль анализатора памяти Eclipse.
  2. Установите точку отладки и запустите приложение в режиме отладки и дойдите до точки, в которой вы хотели бы использовать Heap-Dump.
  3. Перейти к проекции «Анализ памяти» (после установки плагина вы найдете эту проекцию)

Перспектива анализа памяти

  1. Затем нажмите кнопку «Получить дамп кучи», и вы получите все дампы головы до этой точки отладки.

Получить дамп кучи

person Mind Peace    schedule 06.08.2014
comment
Если у вас есть пустой список локальных процессов, попробуйте нажать «Настроить», выбрать поставщик дампа HPROF jmap и установить -jdkhome в каталог установки JDK (НЕ каталог bin в нем). Мне потребовался почти час, чтобы найти это решение. - person Oliver Hoffmann; 28.10.2015

Вы всегда можете использовать jvisualvm для подключения к процессу, затем щелкнуть правой кнопкой мыши и выполнить дамп кучи.

person Alcanzar    schedule 06.08.2014