Я сгенерировал дамп ядра виртуальной машины OpenJ9 с помощью команды jcmd 1 Dump.system teste.system
.
Но когда я пытаюсь проанализировать файл дампа в Memory Analyzer (MAT) 1.9.1 и 1.9.0 (с Diagnosti c Среда разработки для Java (DTFJ)) почти всегда я получаю это исключение:
An internal error occurred during: "Parsing heap dump from 'C:\temp\system\dest.dmp'".
Index -414888 out of bounds for length 1741882
Я попытался запустить MAT с включенными параметрами отладки (https://wiki.eclipse.org/MemoryAnalyzer/FAQ#Enable_Debug_Output) и затем я получил эту трассировку стека:
!MESSAGE An internal error occurred during: "Parsing heap dump from 'C:\temp\system\dest.dmp'".
!STACK 0
java.lang.ArrayIndexOutOfBoundsException: Index -414888 out of bounds for length 1741882
at org.eclipse.mat.collect.ArrayIntCompressed.get(ArrayIntCompressed.java:174)
at org.eclipse.mat.parser.index.IndexWriter$IntIndex.get0(IndexWriter.java:383)
at org.eclipse.mat.parser.index.IndexWriter$IntIndex.get(IndexWriter.java:362)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.addRoot(DTFJIndexBuilder.java:6875)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.checkThreadBlockingObject(DTFJIndexBuilder.java:3892)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.fill(DTFJIndexBuilder.java:2222)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:222)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:126)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:147)
at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:83)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)