blob: 5f6ccfe31b72a2bd098ee82aa2a118c863c64b07 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>J9DDRImageProcess (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.j9ddr.view.dtfj.image, class: J9DDRImageProcess">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.j9ddr.view.dtfj.image.J9DDRImageProcess class">
<meta name="keywords" content="getIProcess()">
<meta name="keywords" content="getCommandLine()">
<meta name="keywords" content="getCurrentThread()">
<meta name="keywords" content="getEnvironment()">
<meta name="keywords" content="getExecutable()">
<meta name="keywords" content="getID()">
<meta name="keywords" content="toString()">
<meta name="keywords" content="getLibraries()">
<meta name="keywords" content="getPointerSize()">
<meta name="keywords" content="getRuntimes()">
<meta name="keywords" content="getSignalName()">
<meta name="keywords" content="getSignalNumber()">
<meta name="keywords" content="getThreads()">
<meta name="keywords" content="getThread()">
<meta name="keywords" content="getVersion()">
<meta name="keywords" content="getProperties()">
<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/J9DDRImageProcess.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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.j9ddr.view.dtfj.image</a></div>
<h1 title="Class J9DDRImageProcess" class="title">Class J9DDRImageProcess</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">java.lang.Object</a>
<div class="inheritance">com.ibm.j9ddr.view.dtfj.image.J9DDRImageProcess</div>
</div>
<section class="description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">J9DDRImageProcess</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a>
implements <a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></span></div>
<div class="block">Adapter for DDR IProcesses to make them implement the ImageProcess
API</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor.summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(com.ibm.j9ddr.corereaders.memory.IProcess)">J9DDRImageProcess</a></span>&#8203;(<a href="../../../corereaders/memory/IProcess.html" title="interface in com.ibm.j9ddr.corereaders.memory">IProcess</a>&nbsp;thisProcess)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== 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-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete 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-tab4 method-summary-table"><code><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></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCommandLine()">getCommandLine</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">This method tries to get command line of the program that generated core file.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="../../../../dtfj/image/ImageThread.html" title="interface in com.ibm.dtfj.image">ImageThread</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCurrentThread()">getCurrentThread</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">This method returns the ImageThread that matches the TID stored in the J9RAS data structure,
or
case 1: if no J9RAS structure available return null
case 2: if J9RAS structure available but no TID field (old JVMs, old jextract behaviour)
- return the first thread, or null if no threads
case 3: if J9RAS structure available with TID field but TID is zero (eg dump triggered outside JVM)
- platform specific code if core readers have identified a current thread, else...</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Properties.html" title="class or interface in java.util" class="external-link" target="_blank">Properties</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getEnvironment()">getEnvironment</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">This method gets the environment variables.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="../../../../dtfj/image/ImageModule.html" title="interface in com.ibm.dtfj.image">ImageModule</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getExecutable()">getExecutable</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the module representing the executable within the image.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><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></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getID()">getID</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the system-wide identifier for the process.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="../../../corereaders/memory/IProcess.html" title="interface in com.ibm.j9ddr.corereaders.memory">IProcess</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getIProcess()">getIProcess</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a>&lt;?&gt;</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLibraries()">getLibraries</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the set of shared libraries which are loaded in this process.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getPointerSize()">getPointerSize</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Determine the pointer size used by this process.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Properties.html" title="class or interface in java.util" class="external-link" target="_blank">Properties</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getProperties()">getProperties</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Gets the OS specific properties for this process.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a>&lt;?&gt;</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getRuntimes()">getRuntimes</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the set of the known ManagedRuntime environments in the image.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><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></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSignalName()">getSignalName</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the name of the OS signal in this process which triggered the
creation of this image.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSignalNumber()">getSignalNumber</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the OS signal number in this process which triggered the creation
of this image.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="J9DDRBaseImageThread.html" title="class in com.ibm.j9ddr.view.dtfj.image">J9DDRBaseImageThread</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getThread(long)">getThread</a></span>&#8203;(long&nbsp;id)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a>&lt;?&gt;</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getThreads()">getThreads</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the set of image threads in the image.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><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></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getVersion()">getVersion</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Returns the build version(e.g. 23-26) of the first VM in the process (useful for testing).</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods.inherited.from.class.java.lang.Object">Methods declared in class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link" target="_blank">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor.detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(com.ibm.j9ddr.corereaders.memory.IProcess)">
<h3>J9DDRImageProcess</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">J9DDRImageProcess</span>&#8203;<span class="parameters">(<a href="../../../corereaders/memory/IProcess.html" title="interface in com.ibm.j9ddr.corereaders.memory">IProcess</a>&nbsp;thisProcess)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method.detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getIProcess()">
<h3>getIProcess</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../../corereaders/memory/IProcess.html" title="interface in com.ibm.j9ddr.corereaders.memory">IProcess</a></span>&nbsp;<span class="element-name">getIProcess</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getCommandLine()">
<h3>getCommandLine</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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></span>&nbsp;<span class="element-name">getCommandLine</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block">This method tries to get command line of the program that generated core file.
We can't get the command line from the core dump on zOS, or on recent Windows versions. On Linux
it may be truncated. The java launcher stores the command line in an environment variable, so for
all platforms we now try that first, with the core reader as a fallback.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getCommandLine()">getCommandLine</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>String instance of the commandline</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code></dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCurrentThread()">
<h3>getCurrentThread</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../../../dtfj/image/ImageThread.html" title="interface in com.ibm.dtfj.image">ImageThread</a></span>&nbsp;<span class="element-name">getCurrentThread</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block">This method returns the ImageThread that matches the TID stored in the J9RAS data structure,
or
case 1: if no J9RAS structure available return null
case 2: if J9RAS structure available but no TID field (old JVMs, old jextract behaviour)
- return the first thread, or null if no threads
case 3: if J9RAS structure available with TID field but TID is zero (eg dump triggered outside JVM)
- platform specific code if core readers have identified a current thread, else...
case 4: if J9RAS structure available with TID field but no match (eg Linux), return a stub ImageThread</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getCurrentThread()">getCurrentThread</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>ImageThread</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dt>See Also:</dt>
<dd><a href="../../../../dtfj/image/ImageThread.html" title="interface in com.ibm.dtfj.image"><code>ImageThread</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getEnvironment()">
<h3>getEnvironment</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Properties.html" title="class or interface in java.util" class="external-link" target="_blank">Properties</a></span>&nbsp;<span class="element-name">getEnvironment</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block">This method gets the environment variables.
First it tries to extract it from RAS structure.
If not, it tries to get it from loaded modules.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getEnvironment()">getEnvironment</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>Properties instance of environment variables.</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code></dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getExecutable()">
<h3>getExecutable</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../../../dtfj/image/ImageModule.html" title="interface in com.ibm.dtfj.image">ImageModule</a></span>&nbsp;<span class="element-name">getExecutable</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getExecutable()">ImageProcess</a></code></span></div>
<div class="block">Get the module representing the executable within the image.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getExecutable()">getExecutable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>the module representing the executable within the image (as opposed to
modules representing libraries)</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the information cannot be provided</dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dt>See Also:</dt>
<dd><a href="../../../../dtfj/image/ImageModule.html" title="interface in com.ibm.dtfj.image"><code>ImageModule</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getID()">
<h3>getID</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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></span>&nbsp;<span class="element-name">getID</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getID()">ImageProcess</a></code></span></div>
<div class="block">Get the system-wide identifier for the process.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getID()">getID</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>a system-wide identifier for the process (e.g. a process id (pid) on Unix like
systems)</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the information cannot be provided</dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLibraries()">
<h3>getLibraries</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a>&lt;?&gt;</span>&nbsp;<span class="element-name">getLibraries</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getLibraries()">ImageProcess</a></code></span></div>
<div class="block">Get the set of shared libraries which are loaded in this process.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getLibraries()">getLibraries</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>an iterator to iterate over the shared libraries which are loaded in this
process</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the information cannot be provided</dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dt>See Also:</dt>
<dd><a href="../../../../dtfj/image/ImageModule.html" title="interface in com.ibm.dtfj.image"><code>ImageModule</code></a>,
<a href="../../../../dtfj/image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPointerSize()">
<h3>getPointerSize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getPointerSize</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getPointerSize()">ImageProcess</a></code></span></div>
<div class="block">Determine the pointer size used by this process.
Currently supported values are 31, 32 or 64.
In the future, other pointer sizes may also be supported.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getPointerSize()">getPointerSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>the size of a pointer, in bits</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getRuntimes()">
<h3>getRuntimes</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a>&lt;?&gt;</span>&nbsp;<span class="element-name">getRuntimes</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getRuntimes()">ImageProcess</a></code></span></div>
<div class="block">Get the set of the known ManagedRuntime environments in the image.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getRuntimes()">getRuntimes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>an iterator to iterate over all of the known ManagedRuntime
environments in the image.
In a typical image, there will be only one runtime, and it will be
an instance of JavaRuntime. However any user of this API should be aware
that there is a possibility that other runtimes may exist in the image</dd>
<dt>See Also:</dt>
<dd><a href="../../../../dtfj/runtime/ManagedRuntime.html" title="interface in com.ibm.dtfj.runtime"><code>ManagedRuntime</code></a>,
<a href="../../../../dtfj/java/JavaRuntime.html" title="interface in com.ibm.dtfj.java"><code>JavaRuntime</code></a>,
<a href="../../../../dtfj/image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSignalName()">
<h3>getSignalName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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></span>&nbsp;<span class="element-name">getSignalName</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getSignalName()">ImageProcess</a></code></span></div>
<div class="block">Get the name of the OS signal in this process which triggered the
creation of this image.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getSignalName()">getSignalName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>the name of the OS signal in this process which triggered the
creation of this image, or null if the image was not created because of a
signal in this process</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the information cannot be provided</dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSignalNumber()">
<h3>getSignalNumber</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getSignalNumber</span>()
throws <span class="exceptions"><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
<a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getSignalNumber()">ImageProcess</a></code></span></div>
<div class="block">Get the OS signal number in this process which triggered the creation
of this image.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getSignalNumber()">getSignalNumber</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>the OS signal number in this process which triggered the creation
of this image, or 0 if the image was not created because of a signal in this
process</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the information cannot be provided</dd>
<dd><code><a href="../../../../dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getThreads()">
<h3>getThreads</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a>&lt;?&gt;</span>&nbsp;<span class="element-name">getThreads</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getThreads()">ImageProcess</a></code></span></div>
<div class="block">Get the set of image threads in the image.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getThreads()">getThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>an iterator to iterate over each ImageThread in the image
There is not necessarily any relationship between JavaThreads and
ImageThreads. A JVM implementation may use an n:m mapping of JavaThreads to
ImageThreads, and not all ImageThreads are necessarily attached.</dd>
<dt>See Also:</dt>
<dd><a href="../../../../dtfj/image/ImageThread.html" title="interface in com.ibm.dtfj.image"><code>ImageThread</code></a>,
<a href="../../../../dtfj/image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getThread(long)">
<h3>getThread</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="J9DDRBaseImageThread.html" title="class in com.ibm.j9ddr.view.dtfj.image">J9DDRBaseImageThread</a></span>&nbsp;<span class="element-name">getThread</span>&#8203;<span class="parameters">(long&nbsp;id)</span></div>
</section>
</li>
<li>
<section class="detail" id="getVersion()">
<h3>getVersion</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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></span>&nbsp;<span class="element-name">getVersion</span>()</div>
<div class="block">Returns the build version(e.g. 23-26) of the first VM in the process (useful for testing).
Would be nice if DTFJJavaRuntime could implement this method, but that would be complicated
as there are multiple version-packaged DTFJJavaRuntimes (e.g. j9ddr.vmxx.view.dtfj.java.DTFJJavaRunTime)
and tests are not version-packaged.</div>
</section>
</li>
<li>
<section class="detail" id="getProperties()">
<h3>getProperties</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Properties.html" title="class or interface in java.util" class="external-link" target="_blank">Properties</a></span>&nbsp;<span class="element-name">getProperties</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html#getProperties()">ImageProcess</a></code></span></div>
<div class="block">Gets the OS specific properties for this process.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../dtfj/image/ImageProcess.html#getProperties()">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../dtfj/image/ImageProcess.html" title="interface in com.ibm.dtfj.image">ImageProcess</a></code></dd>
<dt>Returns:</dt>
<dd>a set of OS specific properties</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>