Можете ли вы извлечь значение строк из дампа кучи IBM PHD java?

У меня есть дамп кучи в формате PHD из IBM jvm, и я хочу проверить значения некоторых строк. С бинарными дампами hprof Sun JVM это возможно, но мне не удалось восстановить эту информацию из дампа IBM.

Я пробовал:

  1. Анализатор памяти Eclipse (0.8.0.200906170940) со средством чтения дампа кучи IBM DTFJ Portal (1.3.0.200903241644)
  2. IBM Support Assistant (3.1.0.00) с диагностикой дампа памяти для Java (2.0.0.3b)
  3. Запуск «строк» ​​над файлом дампа
  4. Преобразование в текстовый дамп с помощью com.ibm.jvm.ras.findroots.PrintHeapdump из svcdump.jar, найденного в mdd4j (2.0.0.3b)

В анализаторе памяти Eclipse я могу просмотреть массив символов внутри строки, но все записи в массиве равны нулю. Я также не вижу никаких примитивных атрибутов на любых объектах.

IBM намекает, что хранит значения примитивных типов по адресу http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg21190476

Это стало возможным благодаря использованию класса Java DataOutputStream, который позволяет выводить примитивные типы данных Java в переносимом двоичном формате.

Я использую Java 5.0:

2XHOSLEVEL     OS Level         : AIX 5.3
2XHCPUS        Processors -
3XHCPUARCH       Architecture   : ppc64
3XHNUMCPUS       How Many       : 8
1CIJAVAVERSION J2RE 5.0 IBM J9 2.3 AIX ppc64-64 build j9vmap6423-20070426
1CIVMVERSION   VM build 20070420_12448_BHdSMr

person Community    schedule 14.10.2009    source источник


Ответы (1)


http://www.java-doc.de/tag/ibm/

*.phd не содержит значений. Это "портативный" формат. Чтобы увидеть значения, вам нужен полный дамп системы, который создает файл гораздо большего размера.

person Mr T    schedule 29.06.2010