blob: 82404b68196d29abcd41b2a2cb31e750a07a4258 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>PortableHeapDumpListener (OpenJ9 JDK 16)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: openj9.dtfj, package: com.ibm.dtfj.phd.parser, interface: PortableHeapDumpListener">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.dtfj.phd.parser.PortableHeapDumpListener interface">
<meta name="keywords" content="objectDump()">
<meta name="keywords" content="objectArrayDump()">
<meta name="keywords" content="classDump()">
<meta name="keywords" content="primitiveArrayDump()">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar.top">
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 16</strong></div></div>
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/PortableHeapDumpListener.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip.navbar.top">
<!-- -->
</span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">openj9.dtfj</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.ibm.dtfj.phd.parser</a></div>
<h1 title="Interface PortableHeapDumpListener" class="title">Interface PortableHeapDumpListener</h1>
</div>
<section class="description">
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">PortableHeapDumpListener</span></div>
<div class="block">This interface is used to parse a heapdump in Phd format. It provides info about the
contents of a heapdump in the form of callbacks with one call per object. Note that wherever
an array of references appears that null references are not included.
<p>
Any exceptions thrown by the listener will be propagated back through the parse call.
<p>
<b>Note:</b> This interface was changed on 12 Oct 2005 to provide the ability to enumerate
the references rather than returning an array of longs. This has been done for performance
reasons after it was found that certain heapdumps contain huge object arrays.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method.summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#classDump(long,long,java.lang.String,int,int,int,com.ibm.dtfj.phd.util.LongEnumeration)">classDump</a></span>&#8203;(long&nbsp;address,
long&nbsp;superAddress,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link" target="_blank">String</a>&nbsp;name,
int&nbsp;instanceSize,
int&nbsp;flags,
int&nbsp;hashCode,
<a href="../util/LongEnumeration.html" title="interface in com.ibm.dtfj.phd.util">LongEnumeration</a>&nbsp;refs)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">This call represents a class object.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#objectArrayDump(long,long,int,int,com.ibm.dtfj.phd.util.LongEnumeration,int,long)">objectArrayDump</a></span>&#8203;(long&nbsp;address,
long&nbsp;classAddress,
int&nbsp;flags,
int&nbsp;hashCode,
<a href="../util/LongEnumeration.html" title="interface in com.ibm.dtfj.phd.util">LongEnumeration</a>&nbsp;refs,
int&nbsp;length,
long&nbsp;instanceSize)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">This call represents an array of objects.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#objectDump(long,long,int,int,com.ibm.dtfj.phd.util.LongEnumeration,long)">objectDump</a></span>&#8203;(long&nbsp;address,
long&nbsp;classAddress,
int&nbsp;flags,
int&nbsp;hashCode,
<a href="../util/LongEnumeration.html" title="interface in com.ibm.dtfj.phd.util">LongEnumeration</a>&nbsp;refs,
long&nbsp;instanceSize)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">This call represents a normal object.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#primitiveArrayDump(long,int,int,int,int,long)">primitiveArrayDump</a></span>&#8203;(long&nbsp;address,
int&nbsp;type,
int&nbsp;length,
int&nbsp;flags,
int&nbsp;hashCode,
long&nbsp;instanceSize)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">This call represents a primitive array.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method.detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="objectDump(long,long,int,int,com.ibm.dtfj.phd.util.LongEnumeration,long)">
<h3>objectDump</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">objectDump</span>&#8203;<span class="parameters">(long&nbsp;address,
long&nbsp;classAddress,
int&nbsp;flags,
int&nbsp;hashCode,
<a href="../util/LongEnumeration.html" title="interface in com.ibm.dtfj.phd.util">LongEnumeration</a>&nbsp;refs,
long&nbsp;instanceSize)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></span></div>
<div class="block">This call represents a normal object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>address</code> - the address of the object</dd>
<dd><code>classAddress</code> - the address of the object's class object (which is dumped via classDump)</dd>
<dd><code>flags</code> - flags associated with the object (currently unused)</dd>
<dd><code>hashCode</code> - the object's hash code</dd>
<dd><code>refs</code> - the enumeration of object references</dd>
<dd><code>instanceSize</code> - the instance size == PHDJavaObject.UNSPECIFIED_INSTANCE_SIZE</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectArrayDump(long,long,int,int,com.ibm.dtfj.phd.util.LongEnumeration,int,long)">
<h3>objectArrayDump</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">objectArrayDump</span>&#8203;<span class="parameters">(long&nbsp;address,
long&nbsp;classAddress,
int&nbsp;flags,
int&nbsp;hashCode,
<a href="../util/LongEnumeration.html" title="interface in com.ibm.dtfj.phd.util">LongEnumeration</a>&nbsp;refs,
int&nbsp;length,
long&nbsp;instanceSize)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></span></div>
<div class="block">This call represents an array of objects.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>address</code> - the address of the array</dd>
<dd><code>classAddress</code> - the address of the class object for the objects in the array</dd>
<dd><code>flags</code> - flags associated with the object (currently unused)</dd>
<dd><code>hashCode</code> - the object's hash code</dd>
<dd><code>refs</code> - the enumeration of object references</dd>
<dd><code>length</code> - the true length of the array in terms of number of references. This includes null refs and so may be greater than refs.length.</dd>
<dd><code>instanceSize</code> - will be set for all object arrays with a version 6 PHD, otherwise == PHDJavaObject.UNSPECIFIED_INSTANCE_SIZE</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="classDump(long,long,java.lang.String,int,int,int,com.ibm.dtfj.phd.util.LongEnumeration)">
<h3>classDump</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">classDump</span>&#8203;<span class="parameters">(long&nbsp;address,
long&nbsp;superAddress,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link" target="_blank">String</a>&nbsp;name,
int&nbsp;instanceSize,
int&nbsp;flags,
int&nbsp;hashCode,
<a href="../util/LongEnumeration.html" title="interface in com.ibm.dtfj.phd.util">LongEnumeration</a>&nbsp;refs)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></span></div>
<div class="block">This call represents a class object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>address</code> - the address of the class object</dd>
<dd><code>superAddress</code> - the address of the superclass object</dd>
<dd><code>name</code> - the name of the class</dd>
<dd><code>instanceSize</code> - the size of each instance (object) of this class</dd>
<dd><code>flags</code> - flags associated with the object (currently unused)</dd>
<dd><code>hashCode</code> - the object's hash code</dd>
<dd><code>refs</code> - the enumeration of this class's static references.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="primitiveArrayDump(long,int,int,int,int,long)">
<h3>primitiveArrayDump</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">primitiveArrayDump</span>&#8203;<span class="parameters">(long&nbsp;address,
int&nbsp;type,
int&nbsp;length,
int&nbsp;flags,
int&nbsp;hashCode,
long&nbsp;instanceSize)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></span></div>
<div class="block">This call represents a primitive array.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>address</code> - the address of the array</dd>
<dd><code>type</code> - the type of the array elements as follows:
<table cellpadding="2" cellspacing="0" border="1">
<thead>
<tr>
<th align="left" valign="top">Value<br></th>
<th align="left" valign="top">Array type<br></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">0<br></td>
<td valign="top">bool<br></td>
</tr>
<tr>
<td valign="top">1<br></td>
<td valign="top">char<br></td>
</tr>
<tr>
<td valign="top">2<br></td>
<td valign="top">float<br></td>
</tr>
<tr>
<td valign="top">3<br></td>
<td valign="top">double<br></td>
</tr>
<tr>
<td valign="top">4<br></td>
<td valign="top">byte<br></td>
</tr>
<tr>
<td valign="top">5<br></td>
<td valign="top">short<br></td>
</tr>
<tr>
<td valign="top">6<br></td>
<td valign="top">int<br></td>
</tr>
<tr>
<td valign="top">7<br></td>
<td valign="top">long<br></td>
</tr>
</tbody>
</table></dd>
<dd><code>length</code> - the number of elements in the array</dd>
<dd><code>flags</code> - flags associated with the object (currently unused)</dd>
<dd><code>hashCode</code> - the object's hash code</dd>
<dd><code>instanceSize</code> - will be set for primitive arrays with a version 6 PHD, otherwise == PHDJavaObject.UNSPECIFIED_INSTANCE_SIZE</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link" target="_blank">Exception</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</div>
</div>
</body>
</html>