2017-01-10 2 views
1

Возможно ли создать дамп Java при возникновении специального исключения? Поскольку мне нужно проверить память дампа, когда происходит исключение, например, когда возникает ошибка nullpointer, она может автоматически генерировать дамп. Мы знаем, что платформа .net имеет такой инструмент procdump https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx, я понятия не имею, есть ли у Java аналогичный способ?Возможно ли создать дамп Java при возникновении специального исключения?

+1

Попробуйте проверить это: http://five.agency/java-heap-dump/ и http://docs.oracle.com/javase/7/docs/technotes/tools/share/jhat.html – user1097772

+0

Я бы использовал отладчик и точку останова при вызове этого исключения. –

+0

@ user1097772, это просто дело с исключением OOM, однако нам нужно зафиксировать любой тип исключения. –

ответ

0

Вы можете обрабатывать необходимое исключение и поставить ниже код внутри улова захватить кучу-дампа в любой момент, когда вы хотите

ObjectName memoryMXBean = new ObjectName("com.sun.management:type=HotSpotDiagnostic"); 
Object[] params = new Object[] { "myHeapDump.hprof", Boolean.TRUE }; 
String[] signature = new String[] { String.class.getName(), boolean.class.getName() }; 
Object result = connection.invoke(memoryMXBean, "dumpHeap", params, signature); 
+0

Ему нужно будет написать код во всех местах, исключение может произойти, а также изменить код, однако мне нужно получить дамп без перезаписи кода, такого как procdump. –

+0

@Hermas Вы можете пройти через http://stackoverflow.com/a/23640439/4090550 Я не нашел времени, чтобы проверить то же самое, но вы можете попробовать –

Смежные вопросы