| <!DOCTYPE HTML> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (16) --> |
| <title>FunctionEmulator (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.corereaders.tdump.zebedee.le, class: FunctionEmulator"> |
| <meta name="generator" content="javadoc/ClassWriterImpl"> |
| <meta name="keywords" content="com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator class"> |
| <meta name="keywords" content="getStackFloor()"> |
| <meta name="keywords" content="createDummyReturnAddress()"> |
| <meta name="keywords" content="setPrintOffsets()"> |
| <meta name="keywords" content="setInstructionTracing()"> |
| <meta name="keywords" content="setInstructionRecording()"> |
| <meta name="keywords" content="getTraceEntries()"> |
| <meta name="keywords" content="setBranchInstructionTracing()"> |
| <meta name="keywords" content="setCallTreeCapture()"> |
| <meta name="keywords" content="getCallTreeRoot()"> |
| <meta name="keywords" content="getCurrentFunction()"> |
| <meta name="keywords" content="getEmulator()"> |
| <meta name="keywords" content="setArgument()"> |
| <meta name="keywords" content="getArgument()"> |
| <meta name="keywords" content="getMutableAddressSpace()"> |
| <meta name="keywords" content="registerCallbackFunction()"> |
| <meta name="keywords" content="overrideFunction()"> |
| <meta name="keywords" content="run()"> |
| <meta name="keywords" content="recordCalledFunctions()"> |
| <meta name="keywords" content="recordAllCalledFunctions()"> |
| <meta name="keywords" content="runAllPaths()"> |
| <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/FunctionEmulator.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: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li>Field | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </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> <a href="../../../../../../../module-summary.html">openj9.dtfj</a></div> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">com.ibm.j9ddr.corereaders.tdump.zebedee.le</a></div> |
| <h1 title="Class FunctionEmulator" class="title">Class FunctionEmulator</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.corereaders.tdump.zebedee.le.FunctionEmulator</div> |
| </div> |
| <section class="description"> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">FunctionEmulator</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></span></div> |
| <div class="block">This class acts as a more convenient way of using the <a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util"><code>Emulator</code></a> class. |
| Because it is in the LE package it adds the following benefits: |
| <ul> |
| <li>it knows the XPLINK calling conventions |
| <li>sets up the stack automatically |
| <li>can obtain a function address and environment from a function name |
| <li>provides tracing including function entry and exit |
| </ul></div> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <li> |
| <section class="nested-class-summary" id="nested.class.summary"> |
| <h2>Nested Class Summary</h2> |
| <div class="caption"><span>Nested Classes</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Class</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>static interface </code></div> |
| <div class="col-second even-row-color"><code><span class="member-name-link"><a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a></span></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">This interface is similar to Emulator.CallbackFunction except that it adds the ability |
| to set the return value from the function (which is XPLINK specific).</div> |
| </div> |
| <div class="col-first odd-row-color"><code>static class </code></div> |
| <div class="col-second odd-row-color"><code><span class="member-name-link"><a href="FunctionEmulator.CallOriginalException.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallOriginalException</a></span></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">This exception can be thrown by callback functions which want to call the overridden |
| function.</div> |
| </div> |
| <div class="col-first even-row-color"><code>class </code></div> |
| <div class="col-second even-row-color"><code><span class="member-name-link"><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a></span></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">This class represents a called function.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>class </code></div> |
| <div class="col-second odd-row-color"><code><span class="member-name-link"><a href="FunctionEmulator.TraceEntry.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.TraceEntry</a></span></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Describes a trace entry</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ======== 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.tdump.zebedee.dumpreader.AddressSpace,long,long)">FunctionEmulator</a></span>​(<a href="../dumpreader/AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a> space, |
| long functionEntryPoint, |
| long functionEnv)</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Create a new FunctionEmulator.</div> |
| </div> |
| <div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace,java.lang.String)">FunctionEmulator</a></span>​(<a href="../dumpreader/AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a> space, |
| <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> functionName)</code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Create a new FunctionEmulator.</div> |
| </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>long</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="#createDummyReturnAddress()">createDummyReturnAddress</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">Register a dummy return address.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</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="#getArgument(int)">getArgument</a></span>​(int argNumber)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Gets the given function argument.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</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="#getCallTreeRoot()">getCallTreeRoot</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 root of the call tree.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</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="#getCurrentFunction()">getCurrentFunction</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">Returns the current function.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator</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="#getEmulator()">getEmulator</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 <a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util"><code>Emulator</code></a> object we use.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="../dumpreader/MutableAddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">MutableAddressSpace</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="#getMutableAddressSpace()">getMutableAddressSpace</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">Returns the MutableAddressSpace used by the emulator.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</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="#getStackFloor()">getStackFloor</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">Return the xplink stack floor.</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/List.html" title="class or interface in java.util" class="external-link" target="_blank">List</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="#getTraceEntries()">getTraceEntries</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">Return a list of the instruction trace entries</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#overrideFunction(long,com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)">overrideFunction</a></span>​(long functionEntryPoint, |
| <a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Allows the given function to be "overridden".</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#overrideFunction(java.lang.String,long)">overrideFunction</a></span>​(<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> functionName, |
| long returnValue)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#overrideFunction(java.lang.String,long,boolean)">overrideFunction</a></span>​(<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> functionName, |
| long retVal, |
| boolean protect)</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#overrideFunction(java.lang.String,com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)">overrideFunction</a></span>​(<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> functionName, |
| <a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Allows the given function to be "overridden".</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#recordAllCalledFunctions()">recordAllCalledFunctions</a></span>()</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#recordCalledFunctions()">recordCalledFunctions</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">Run the emulator and record any called functions as new <a href="DllFunction.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le"><code>DllFunction</code></a>s.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</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="#registerCallbackFunction(com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)">registerCallbackFunction</a></span>​(<a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Registers a callback function.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</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="#run()">run</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">Now run the emulator.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</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="#run(long)">run</a></span>​(long functionPointer)</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Run the emulator using the supplied xplink C function pointer.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</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="#run(java.lang.String)">run</a></span>​(<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> functionName)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Run the emulator using the supplied xplink C function.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#runAllPaths()">runAllPaths</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">Run all paths of the function.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setArgument(int,int)">setArgument</a></span>​(int argNumber, |
| int value)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Sets the given function argument.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setArgument(int,long)">setArgument</a></span>​(int argNumber, |
| long value)</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Sets the given function argument.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setBranchInstructionTracing(boolean)">setBranchInstructionTracing</a></span>​(boolean branchInstructionTrace)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Turn branch instruction tracing on or off.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setCallTreeCapture()">setCallTreeCapture</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">Turn call tree capturing on.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setInstructionRecording(boolean)">setInstructionRecording</a></span>​(boolean instructionRecord)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Turn instruction recording on or off.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setInstructionTracing(boolean)">setInstructionTracing</a></span>​(boolean instructionTrace)</code></div> |
| <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Turn instruction tracing on or off.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#setPrintOffsets(boolean)">setPrintOffsets</a></span>​(boolean printOffsets)</code></div> |
| <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"> |
| <div class="block">Include instruction offsets from the start of the function when tracing.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods.inherited.from.class.java.lang.Object">Methods declared in class 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="<init>(com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace,java.lang.String)"> |
| <h3>FunctionEmulator</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name">FunctionEmulator</span>​<span class="parameters">(<a href="../dumpreader/AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a> space, |
| <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> functionName)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></span></div> |
| <div class="block">Create a new FunctionEmulator.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>space</code> - the AddressSpace containing the code and data we are to use</dd> |
| <dd><code>functionName</code> - the name of the function to call</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></code> - if the given function can't be found</dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace,long,long)"> |
| <h3>FunctionEmulator</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name">FunctionEmulator</span>​<span class="parameters">(<a href="../dumpreader/AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a> space, |
| long functionEntryPoint, |
| long functionEnv)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></span></div> |
| <div class="block">Create a new FunctionEmulator. This is a raw form where the address of the function entry |
| point and env are supplied. Note that the so-called "environment" pointer is not required |
| by all functions. It is the value that is stored in R5. If you do need to know it you |
| can sometimes find it by looking in the DSA of the function to find the saved value |
| (assuming the dump has the function in one of the stacks!).</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>space</code> - the AddressSpace containing the code and data we are to use</dd> |
| <dd><code>functionEntryPoint</code> - the address of the function entry point</dd> |
| <dd><code>functionEnv</code> - the address of the "environment" for the function (not all |
| functions require this to be set)</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></code> - if the given function can't be found</dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </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="getStackFloor()"> |
| <h3>getStackFloor</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">getStackFloor</span>()</div> |
| <div class="block">Return the xplink stack floor. Be careful with this.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="createDummyReturnAddress()"> |
| <h3>createDummyReturnAddress</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">createDummyReturnAddress</span>() |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div> |
| <div class="block">Register a dummy return address. When this is branched to we simply |
| stop the emulator</div> |
| <dl class="notes"> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setPrintOffsets(boolean)"> |
| <h3>setPrintOffsets</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setPrintOffsets</span>​<span class="parameters">(boolean printOffsets)</span></div> |
| <div class="block">Include instruction offsets from the start of the function when tracing. |
| XXX doesn't yet work for called functions</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setInstructionTracing(boolean)"> |
| <h3>setInstructionTracing</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setInstructionTracing</span>​<span class="parameters">(boolean instructionTrace)</span></div> |
| <div class="block">Turn instruction tracing on or off. A trace of all instructions executed will be |
| sent to System.out.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setInstructionRecording(boolean)"> |
| <h3>setInstructionRecording</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setInstructionRecording</span>​<span class="parameters">(boolean instructionRecord)</span></div> |
| <div class="block">Turn instruction recording on or off. A trace of all instructions executed will be |
| saved.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getTraceEntries()"> |
| <h3>getTraceEntries</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link" target="_blank">List</a></span> <span class="element-name">getTraceEntries</span>()</div> |
| <div class="block">Return a list of the instruction trace entries</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setBranchInstructionTracing(boolean)"> |
| <h3>setBranchInstructionTracing</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setBranchInstructionTracing</span>​<span class="parameters">(boolean branchInstructionTrace)</span></div> |
| <div class="block">Turn branch instruction tracing on or off. A trace of all branch instructions executed will be |
| sent to System.out.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setCallTreeCapture()"> |
| <h3>setCallTreeCapture</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setCallTreeCapture</span>()</div> |
| <div class="block">Turn call tree capturing on. The call tree may be retrieved with <a href="#getCallTreeRoot()"><code>getCallTreeRoot()</code></a>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCallTreeRoot()"> |
| <h3>getCallTreeRoot</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a></span> <span class="element-name">getCallTreeRoot</span>()</div> |
| <div class="block">Returns the root of the call tree. <a href="#setCallTreeCapture()"><code>setCallTreeCapture()</code></a> must have been called |
| prior to the emulator having run. These routines can be used to obtain the actual call |
| tree during a run of the emulator. Note that the root function is a dummy one.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCurrentFunction()"> |
| <h3>getCurrentFunction</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a></span> <span class="element-name">getCurrentFunction</span>()</div> |
| <div class="block">Returns the current function. User callbacks can make use of this.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getEmulator()"> |
| <h3>getEmulator</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator</a></span> <span class="element-name">getEmulator</span>()</div> |
| <div class="block">Returns the <a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util"><code>Emulator</code></a> object we use.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setArgument(int,int)"> |
| <h3>setArgument</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setArgument</span>​<span class="parameters">(int argNumber, |
| int value)</span></div> |
| <div class="block">Sets the given function argument.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>argNumber</code> - the number of the argument to be set, starting at one (XXX currently limited to a max of 3)</dd> |
| <dd><code>value</code> - the value of the argument</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setArgument(int,long)"> |
| <h3>setArgument</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">setArgument</span>​<span class="parameters">(int argNumber, |
| long value)</span></div> |
| <div class="block">Sets the given function argument.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>argNumber</code> - the number of the argument to be set, starting at one (XXX currently limited to a max of 3)</dd> |
| <dd><code>value</code> - the value of the argument</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getArgument(int)"> |
| <h3>getArgument</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">getArgument</span>​<span class="parameters">(int argNumber)</span></div> |
| <div class="block">Gets the given function argument. To be used from callback functions.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>argNumber</code> - the number of the argument to be got, starting at one</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getMutableAddressSpace()"> |
| <h3>getMutableAddressSpace</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="../dumpreader/MutableAddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">MutableAddressSpace</a></span> <span class="element-name">getMutableAddressSpace</span>()</div> |
| <div class="block">Returns the MutableAddressSpace used by the emulator. This can be used by users wishing |
| to allocate space for input arguments for instance.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="registerCallbackFunction(com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)"> |
| <h3>registerCallbackFunction</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">registerCallbackFunction</span>​<span class="parameters">(<a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</span></div> |
| <div class="block">Registers a callback function.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the address of the linkage pointer. This is what you put in place of a |
| C function pointer.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="overrideFunction(java.lang.String,com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)"> |
| <h3>overrideFunction</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">overrideFunction</span>​<span class="parameters">(<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> functionName, |
| <a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></span></div> |
| <div class="block">Allows the given function to be "overridden". The supplied callback function will |
| be called rather than the real one.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>functionName</code> - the name of the function to override</dd> |
| <dd><code>callback</code> - the user function that will be called rather than the real one</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="overrideFunction(long,com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)"> |
| <h3>overrideFunction</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">overrideFunction</span>​<span class="parameters">(long functionEntryPoint, |
| <a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></span></div> |
| <div class="block">Allows the given function to be "overridden". The supplied callback function will |
| be called rather than the real one. This is the raw version of overrideFunction |
| that takes the address of the function.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>functionEntryPoint</code> - the address of the function entry point</dd> |
| <dd><code>callback</code> - the user function that will be called rather than the real one</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="overrideFunction(java.lang.String,long,boolean)"> |
| <h3>overrideFunction</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">overrideFunction</span>​<span class="parameters">(<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> functionName, |
| long retVal, |
| boolean protect)</span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="overrideFunction(java.lang.String,long)"> |
| <h3>overrideFunction</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">overrideFunction</span>​<span class="parameters">(<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> functionName, |
| long returnValue)</span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="run()"> |
| <h3>run</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">run</span>() |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div> |
| <div class="block">Now run the emulator. This method returns when the emulated function returns.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the return value from the function (if any)</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="run(long)"> |
| <h3>run</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">run</span>​<span class="parameters">(long functionPointer)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div> |
| <div class="block">Run the emulator using the supplied xplink C function pointer. This method |
| returns when the emulated function returns.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the return value from the function (if any)</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="run(java.lang.String)"> |
| <h3>run</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name">run</span>​<span class="parameters">(<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> functionName)</span> |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></span></div> |
| <div class="block">Run the emulator using the supplied xplink C function. This method |
| returns when the emulated function returns.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the return value from the function (if any)</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link" target="_blank">NoSuchMethodException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="recordCalledFunctions()"> |
| <h3>recordCalledFunctions</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">recordCalledFunctions</span>() |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div> |
| <div class="block">Run the emulator and record any called functions as new <a href="DllFunction.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le"><code>DllFunction</code></a>s. |
| The purpose of this method is to obtain the entry points for functions which are not |
| in the export list for a DLL. The emulator is run and any functions called are saved |
| as fake DllFunction entries which may then be obtained using |
| <a href="Dll.html#getFunction(java.lang.String)"><code>Dll.getFunction(java.lang.String)</code></a>.</div> |
| <dl class="notes"> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="recordAllCalledFunctions()"> |
| <h3>recordAllCalledFunctions</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">recordAllCalledFunctions</span>() |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div> |
| <dl class="notes"> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="runAllPaths()"> |
| <h3>runAllPaths</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">runAllPaths</span>() |
| throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div> |
| <div class="block">Run all paths of the function. This is used for disassembly.</div> |
| <dl class="notes"> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</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 © 1998, 2021, IBM Corp. and others.</small></p> |
| </footer> |
| </div> |
| </div> |
| </body> |
| </html> |