blob: fd03abf87d6a3df51da80c4177f5040c1be75495 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Heap Dump Parser</title>
<style type="text/css">@import url("file:/C:/Users/IBM_ADMIN/eclipse/configuration/org.eclipse.osgi/bundles/1230/1/.cp/book.css");</style>
<style type="text/css">@import url("file:/C:/Users/IBM_ADMIN/eclipse/configuration/org.eclipse.osgi/bundles/1230/1/.cp/schema.css");</style>
</HEAD>
<BODY>
<H1 style="text-align:center">Heap Dump Parser</H1>
<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.mat.parser.parser<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>0.7.0
<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>The format of heap dumps is specific to the Virtual Machine used.
This extensions allows to plug in new dump formats. Out of the box, the Memory Analyzer
supports HPROF and IBM dumps read via DTFJ. A DTFJ implementation is available from IBM developerWorks.<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
<p></p>
<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.parser">parser</a>)&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
<p></p>
<ul class="ConfigMarkupAttlistDesc">
</ul>
<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.parser">parser</a> (<a href="#e.contentTypeBinding">contentTypeBinding</a>*)&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST parser</p>
<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">fileExtension&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">indexBuilder&nbsp;&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">objectReader&nbsp;&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">dynamic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
<p></p>
<ul class="ConfigMarkupAttlistDesc">
<li><b>name</b> - Name of the heap dump format. For example, shown in the file selection dialog.</li>
<li><b>fileExtension</b> - The file extension typically associated witht the file format. Used to filter files in the file selection dialog.</li>
<li><b>indexBuilder</b> - implementor of <a href="org/eclipse/mat/parser/IIndexBuilder.html"><samp>org.eclipse.mat.snapshot.adapter.IIndexBuilder</samp></a> which creates the index files, i.e. the structural information of the heap dump like the reference graph</li>
<li><b>objectReader</b> - implementor of <a href="org/eclipse/mat/parser/IObjectReader.html"><samp>org.eclipse.mat.parser.IObjectReader</samp></a> to read the object details from the heap dump file</li>
<li><b>dynamic</b> - This is a class which extends java.util.Map and returns a set of extensions and descriptions, together with ids which replace the attributes "id", "name", "fileExtension" in the dynamic parser.</li>
</ul>
<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.contentTypeBinding">contentTypeBinding</a> EMPTY&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST contentTypeBinding</p>
<p class="code SchemaDtdAttlist">contentTypeId&nbsp;IDREF #REQUIRED&gt;</p>
<p></p>
<p class="ConfigMarkupElementDesc">
Advertises that the containing parser understands the given content type and is suitable for parsing files of that type.</p>
<br>
<ul class="ConfigMarkupAttlistDesc">
<li><b>contentTypeId</b> - The content type identifier. This is an ID defined by the 'org.eclipse.core.contenttype.contentTypes' extension point.</li>
</ul>
<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Following is an example of a parser declaration:
<p>
<pre class="Example"><span class="code SchemaTag">
&lt;extension
id=</span><span class="code SchemaCstring">&quot;hprof&quot;</span><span class="code SchemaTag">
name=</span><span class="code SchemaCstring">&quot;HPROF Formatted Dumps&quot;</span><span class="code SchemaTag">
point=</span><span class="code SchemaCstring">&quot;org.eclipse.mat.parser.parser&quot;</span><span class="code SchemaTag">&gt;
&lt;parser
name=</span><span class="code SchemaCstring">&quot;HPROF binary heap dumps&quot;</span><span class="code SchemaTag">
fileExtension=</span><span class="code SchemaCstring">&quot;hprof,bin&quot;</span><span class="code SchemaTag">
indexBuilder=</span><span class="code SchemaCstring">&quot;org.eclipse.mat.hprof.HprofIndexBuilder&quot;</span><span class="code SchemaTag">
objectReader=</span><span class="code SchemaCstring">&quot;org.eclipse.mat.hprof.HprofHeapObjectReader&quot;</span><span class="code SchemaTag">&gt;
&lt;/parser&gt;
&lt;/extension&gt;
</span></pre>
</p>
<p></p>
<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>The value of the indexBuilder attribute must represent an implementor of <samp>org.eclipse.mat.parser.IIndexBuilder</samp>,
the objectReader attribute <samp>org.eclipse.mat.parser.IObjectReader</samp>.
The dynamicParser attribute is a class which extends java.util.Map and returns a set of extensions and descriptions, together with ids which replace the attributes "id", "name", "fileExtension" in the dynamic parser.
<pre class="Example"><span class="code SchemaTag">
Map&lt;String, Map&lt;String, String&gt;&gt;
</span></pre>
<dl>
<dt>Main id</dt>
<dd>fully qualified id for each parser
<dl>
<dt>id</dt><dd>fully qualified id for the parser</dd>
<dt>name</dt><dd>readable name for the parser</dd>
<dt>fileExtension</dt><dd>file extensions for this parser</dd>
</dl>
</dd>
</dl>
The subparsers share the indexBuilder and objectReader.
<p>This is used for example by the DTFJ parser which has to find out at run time which DTFJ implementations are available and to create an MAT parser definition for each one.</p>
<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>The Memory Analyzer supplies an implementation for HPROF and IBM DTFJ format dumps. Check out the <samp>org.eclipse.mat.hprof</samp> plug-in and <samp>org.eclipse.mat.dtfj</samp> plug-in.
A DTFJ implementation is available from IBM DeveloperWorks.
<p></p>
<br>
<p class="note SchemaCopyright">
Copyright (c) 2008,2021 SAP AG and IBM Corporation.<br>
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0 which
accompanies this distribution, and is available at
<a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>
</p>
</BODY>
</HTML>