Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can you extract the value of strings from an IBM PHD java heap dump?

I have a PHD format heap dump from an IBM jvm and I wish to examine the values of some strings. With the Sun JVM's binary hprof dumps this is possible, but I haven't been able to recover this information from an IBM dump.

I've tried:

  1. Eclipse Memory Analyzer (0.8.0.200906170940) with IBM's DTFJ Portal Heap Dump Reader (1.3.0.200903241644)
  2. IBM Support Assistant (3.1.0.00) with Memory Dump Diagnostic for Java (2.0.0.3b)
  3. Running "strings" over the dump file
  4. Converting to text dump with com.ibm.jvm.ras.findroots.PrintHeapdump from svcdump.jar found in mdd4j (2.0.0.3b)

In the Eclipse Memory Analyzer I can view the char array inside a String, but all the entries in the array are zero. I also can't see any of the primitive attributes on any objects.

IBM hint that they do store the values of primitive types at http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg21190476

This was made possible by using a Java DataOutputStream class which allows the output of Java primitive data types in a portable binary format.

I'm using 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

1 Answers

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

The *.phd doesn't contains the values. This is a "portable" format. To see the values you need a full system dump that produce much bigger file.

like image 154
Mr T Avatar answered Sep 05 '25 18:09

Mr T



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!