Eclipse Community Forums - RDF feed
https://www.eclipse.org/forums/
Eclipse Community Forumscan MAT use PHD? (or only HPROF?)
https://www.eclipse.org/forums/index.php/mv/msg/2450/7112/#msg_7112
decision ...) Instructions seem to assume (without quite saying so) that
the heap-dump format must be HPROF: what formats are recognized other
than HPROF? In particular, it seems (from "Open heap Dump" -> navigate
to directory full of PHD's) that PHD is not recognized?
On the other hand, I have tried to get the IBM JVM to produce HPROF, so
far to no avail -- does anyone know how to do that?
thanks,
Paul]]>Paul E. Keyser2008-11-18T19:18:07-00:00Re: can MAT use PHD? (or only HPROF?)
https://www.eclipse.org/forums/index.php/mv/msg/2450/7136/#msg_7136
Originally posted by: cgrinds.us.ibm.com
> Instructions do not list IBM JRE which we alas must use. (Not my code or
> decision ...) Instructions seem to assume (without quite saying so) that
> the heap-dump format must be HPROF: what formats are recognized other
> than HPROF? In particular, it seems (from "Open heap Dump" -> navigate
> to directory full of PHD's) that PHD is not recognized?
>
> On the other hand, I have tried to get the IBM JVM to produce HPROF, so
> far to no avail -- does anyone know how to do that?
>
Hi Paul,
PHDs are missing a lot of information.
MAT can consume system core files produced by IBM's VM.
You can either programmatically ask for a system dump or setup signal
handler to generate a system dump when a SIG is received.
HTH,
Chris
--
Chris Grindstaff cgrinds@us.ibm.com]]>2008-11-19T00:28:27-00:00Re: can MAT use PHD? (or only HPROF?)
https://www.eclipse.org/forums/index.php/mv/msg/2450/7237/#msg_7237
> You can either programmatically ask for a system dump or setup signal
using <code>com.ibm.jvm.Dump.HeapDump();</code>? that generates only PHD.
thanks,
Paul]]>Paul E. Keyser2008-11-20T00:37:30-00:00Re: can MAT use PHD? (or only HPROF?)
https://www.eclipse.org/forums/index.php/mv/msg/2450/7261/#msg_7261
--------------030802080004040404060801
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Chris Grindstaff wrote:
> You can add an adaptor that allows MAT to read IBM core.*.dmp files.
> "IBM DTFJ adapter for Eclipse Memory Analyzer Tool"
> http://www.ibm.com/developerworks/java/jdk/tools/mat.html
>
OK, that failed. I got the adaptor and created the ".dmp" files, and
when I navigate in MAT (File -> Open Heap Dump) to the directory where
they are, they are visible -- but MAT+DTFJ just immediately barfs; see
attached .log file.
!SESSION 2008-11-19 20:33:31.796 -----------------------------------------------
eclipse.buildId=I20070625-1500
java.fullversion=J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20070426 (JIT enabled)
J9VM - 20070420_12448_lHdSMR
JIT - 20070419_1806_r8
GC - 200704_19
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86
!ENTRY org.eclipse.mat.parser 4 0 2008-11-19 20:33:52.359
!MESSAGE Error opening heap dump
!SUBENTRY 1 org.eclipse.mat.parser 4 0 2008-11-19 20:33:52.359
!MESSAGE Unable to read dump in either IBM Java 6, IBM Java 5.0 or IBM Java 1.4.2 formats
!STACK 0
java.io.IOException: Unable to read dump in either IBM Java 6, IBM Java 5.0 or IBM Java 1.4.2 formats
at org.eclipse.mat.dtfj.DTFJIndexBuilder.getUncachedDump(DTFJIn dexBuilder.java:3871)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.getDump(DTFJIndexBuild er.java:3752)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.fill(DTFJIndexBuilder. java:284)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(Sn apshotFactoryImpl.java:183)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnap shot(SnapshotFactoryImpl.java:101)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(Snapsh otFactory.java:87)
at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDu mpJob.java:54)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.io.IOException: Currently can only handle SDFF files, which _MUST have a suffix of ".sdff"_
or svcdumps
at com.ibm.dtfj.image.sov.ImageFactory.getImage(ImageFactory.ja va:99)
at com.ibm.dtfj.image.sov.ImageFactory.getImage(ImageFactory.ja va:169)
at org.eclipse.mat.dtfj.DTFJIndexBuilder.getUncachedDump(DTFJIn dexBuilder.java:3860)
... 7 more
!ENTRY org.eclipse.mat.ui 4 0 2008-11-19 20:33:52.375
!MESSAGE Error opening heap dump 'core.20081120.012103.1220.dmp'. Check log for details.
!STACK 0
org.eclipse.mat.SnapshotException: Error opening heap dump 'core.20081120.012103.1220.dmp'. Check log for details.
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(Sn apshotFactoryImpl.java:217)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnap shot(SnapshotFactoryImpl.java:101)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(Snapsh otFactory.java:87)
at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDu mpJob.java:54)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
--------------030802080004040404060801--]]>Paul E. Keyser2008-11-20T01:40:19-00:00Re: can MAT use PHD? (or only HPROF?)
https://www.eclipse.org/forums/index.php/mv/msg/2450/7545/#msg_7545
unfortunately I don't know the details and Andrew is at the Eclipse Summit
Europe today.
I know that the DTFJ adapter requires the exact SR or the Java VM.
Currently, one has to at least have one of those:
IBM JDK 1.4.2 SR12, 5.0 SR8a and 6.0 SR2
(The java full version string in the log file indicates a older version).
The next thing to do is to run ~/jre/bin/jextract on the dump. The
jextract must be the one from the VM you got the heap dump from. From that
platform.
Then you can open the dump in MAT.
Hope this helps a bit.
Andreas.]]>Andreas Buchen2008-11-20T11:51:02-00:00Re: can MAT use PHD? (or only HPROF?)
https://www.eclipse.org/forums/index.php/mv/msg/2450/7655/#msg_7655
> I know that the DTFJ adapter requires the exact SR or the Java VM.
> Currently, one has to at least have one of those:
> IBM JDK 1.4.2 SR12, 5.0 SR8a and 6.0 SR2
> (The java full version string in the log file indicates a older version).
>
Hmm, interesting -- I thought I had gotten a more recent one, but now
that I think it through, the JVM in use was actually provided by another
team member ...
> The next thing to do is to run ~/jre/bin/jextract on the dump. The
> jextract must be the one from the VM you got the heap dump from. From
> that platform.
>
> Then you can open the dump in MAT.
>
Aha! That was the missing step; it is in the DTFJ instructions (now that
I know what to look for), but not clearly enough for me to get it on the
first read through.
Now MAT is happy and so am I (but the same team member who supplied the
out-of-date JVM will not be; just spotted what looks to be a
magnificently huge leak in his code ...)
thanks,
-Paul]]>Paul E. Keyser2008-11-20T14:40:36-00:00