| <!DOCTYPE HTML> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc --> |
| <title>FunctionEmulator (OpenJ9 JDK 11)</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <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="../../../../../../../../jquery/jquery-ui.css" title="Style"> |
| <script type="text/javascript" src="../../../../../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../../../../../jquery/jszip/dist/jszip.min.js"></script> |
| <script type="text/javascript" src="../../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script> |
| <!--[if IE]> |
| <script type="text/javascript" src="../../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script> |
| <![endif]--> |
| <script type="text/javascript" src="../../../../../../../../jquery/jquery-3.5.1.js"></script> |
| <script type="text/javascript" src="../../../../../../../../jquery/jquery-ui.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="FunctionEmulator (OpenJ9 JDK 11)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10}; |
| var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; |
| var altColor = "altColor"; |
| var rowColor = "rowColor"; |
| var tableTab = "tableTab"; |
| var activeTableTab = "activeTableTab"; |
| var pathtoroot = "../../../../../../../../"; |
| var useModuleDirectories = true; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <header role="banner"> |
| <nav role="navigation"> |
| <div class="fixedNav"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a id="navbar.top"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.top.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" 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="navBarCell1Rev">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 class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../../../../allclasses.html">All Classes</a></li> |
| </ul> |
| <ul class="navListSearch"> |
| <li><label for="search">SEARCH:</label> |
| <input type="text" id="search" value="search" disabled="disabled"> |
| <input type="reset" id="reset" value="reset" disabled="disabled"> |
| </li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <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="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a id="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| </div> |
| <div class="navPadding"> </div> |
| <script type="text/javascript"><!-- |
| $('.navPadding').css('padding-top', $('.fixedNav').css("height")); |
| //--> |
| </script> |
| </nav> |
| </header> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <main role="main"> |
| <div class="header"> |
| <div class="subTitle"><span class="moduleLabelInType">Module</span> <a href="../../../../../../../module-summary.html">openj9.dtfj</a></div> |
| <div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">com.ibm.j9ddr.corereaders.tdump.zebedee.le</a></div> |
| <h2 title="Class FunctionEmulator" class="title">Class FunctionEmulator</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">java.lang.Object</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li>com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator</li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <hr> |
| <pre>public class <span class="typeNameLabel">FunctionEmulator</span> |
| extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a></pre> |
| <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> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="nested.class.summary"> |
| <!-- --> |
| </a> |
| <h3>Nested Class Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colSecond" scope="col">Class</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static interface </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a></span></code></th> |
| <td class="colLast"> |
| <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> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="FunctionEmulator.CallOriginalException.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallOriginalException</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">This exception can be thrown by callback functions which want to call the overridden |
| function.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">This class represents a called function.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="FunctionEmulator.TraceEntry.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.TraceEntry</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Describes a trace entry</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| </section> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="constructor.summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Constructor</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><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></th> |
| <td class="colLast"> |
| <div class="block">Create a new FunctionEmulator.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><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/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName)</code></th> |
| <td class="colLast"> |
| <div class="block">Create a new FunctionEmulator.</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| </section> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="method.summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <table class="memberSummary"> |
| <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colSecond" scope="col">Method</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr id="i0" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createDummyReturnAddress()">createDummyReturnAddress</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Register a dummy return address.</div> |
| </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getArgument(int)">getArgument</a></span>​(int argNumber)</code></th> |
| <td class="colLast"> |
| <div class="block">Gets the given function argument.</div> |
| </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCallTreeRoot()">getCallTreeRoot</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Returns the root of the call tree.</div> |
| </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code><a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentFunction()">getCurrentFunction</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Returns the current function.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code><a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEmulator()">getEmulator</a></span>()</code></th> |
| <td class="colLast"> |
| <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> |
| </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code><a href="../dumpreader/MutableAddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">MutableAddressSpace</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMutableAddressSpace()">getMutableAddressSpace</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Returns the MutableAddressSpace used by the emulator.</div> |
| </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStackFloor()">getStackFloor</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Return the xplink stack floor.</div> |
| </td> |
| </tr> |
| <tr id="i7" class="rowColor"> |
| <td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink" target="_blank">List</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTraceEntries()">getTraceEntries</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Return a list of the instruction trace entries</div> |
| </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><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></th> |
| <td class="colLast"> |
| <div class="block">Allows the given function to be "overridden".</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#overrideFunction(java.lang.String,long)">overrideFunction</a></span>​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName, |
| long returnValue)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#overrideFunction(java.lang.String,long,boolean)">overrideFunction</a></span>​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName, |
| long retVal, |
| boolean protect)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><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/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" 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></th> |
| <td class="colLast"> |
| <div class="block">Allows the given function to be "overridden".</div> |
| </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recordAllCalledFunctions()">recordAllCalledFunctions</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recordCalledFunctions()">recordCalledFunctions</a></span>()</code></th> |
| <td class="colLast"> |
| <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> |
| </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><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></th> |
| <td class="colLast"> |
| <div class="block">Registers a callback function.</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run()">run</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Now run the emulator.</div> |
| </td> |
| </tr> |
| <tr id="i16" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run(long)">run</a></span>​(long functionPointer)</code></th> |
| <td class="colLast"> |
| <div class="block">Run the emulator using the supplied xplink C function pointer.</div> |
| </td> |
| </tr> |
| <tr id="i17" class="rowColor"> |
| <td class="colFirst"><code>long</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run(java.lang.String)">run</a></span>​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName)</code></th> |
| <td class="colLast"> |
| <div class="block">Run the emulator using the supplied xplink C function.</div> |
| </td> |
| </tr> |
| <tr id="i18" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runAllPaths()">runAllPaths</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Run all paths of the function.</div> |
| </td> |
| </tr> |
| <tr id="i19" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setArgument(int,int)">setArgument</a></span>​(int argNumber, |
| int value)</code></th> |
| <td class="colLast"> |
| <div class="block">Sets the given function argument.</div> |
| </td> |
| </tr> |
| <tr id="i20" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setArgument(int,long)">setArgument</a></span>​(int argNumber, |
| long value)</code></th> |
| <td class="colLast"> |
| <div class="block">Sets the given function argument.</div> |
| </td> |
| </tr> |
| <tr id="i21" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setBranchInstructionTracing(boolean)">setBranchInstructionTracing</a></span>​(boolean branchInstructionTrace)</code></th> |
| <td class="colLast"> |
| <div class="block">Turn branch instruction tracing on or off.</div> |
| </td> |
| </tr> |
| <tr id="i22" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCallTreeCapture()">setCallTreeCapture</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Turn call tree capturing on.</div> |
| </td> |
| </tr> |
| <tr id="i23" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInstructionRecording(boolean)">setInstructionRecording</a></span>​(boolean instructionRecord)</code></th> |
| <td class="colLast"> |
| <div class="block">Turn instruction recording on or off.</div> |
| </td> |
| </tr> |
| <tr id="i24" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInstructionTracing(boolean)">setInstructionTracing</a></span>​(boolean instructionTrace)</code></th> |
| <td class="colLast"> |
| <div class="block">Turn instruction tracing on or off.</div> |
| </td> |
| </tr> |
| <tr id="i25" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPrintOffsets(boolean)">setPrintOffsets</a></span>​(boolean printOffsets)</code></th> |
| <td class="colLast"> |
| <div class="block">Include instruction offsets from the start of the function when tracing.</div> |
| </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods declared in class java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a></h3> |
| <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a></code></li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </div> |
| <div class="details"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="constructor.detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a id="<init>(com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace,java.lang.String)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>FunctionEmulator</h4> |
| <pre>public FunctionEmulator​(<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/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName) |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></pre> |
| <div class="block">Create a new FunctionEmulator.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></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><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" 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/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="<init>(com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace,long,long)"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>FunctionEmulator</h4> |
| <pre>public FunctionEmulator​(<a href="../dumpreader/AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a> space, |
| long functionEntryPoint, |
| long functionEnv) |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></pre> |
| <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> |
| <dt><span class="paramLabel">Parameters:</span></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><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" 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/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| <!-- ============ METHOD DETAIL ========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="method.detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a id="getStackFloor()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getStackFloor</h4> |
| <pre class="methodSignature">public long getStackFloor()</pre> |
| <div class="block">Return the xplink stack floor. Be careful with this.</div> |
| </li> |
| </ul> |
| <a id="createDummyReturnAddress()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>createDummyReturnAddress</h4> |
| <pre class="methodSignature">public long createDummyReturnAddress() |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre> |
| <div class="block">Register a dummy return address. When this is branched to we simply |
| stop the emulator</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="setPrintOffsets(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setPrintOffsets</h4> |
| <pre class="methodSignature">public void setPrintOffsets​(boolean printOffsets)</pre> |
| <div class="block">Include instruction offsets from the start of the function when tracing. |
| XXX doesn't yet work for called functions</div> |
| </li> |
| </ul> |
| <a id="setInstructionTracing(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setInstructionTracing</h4> |
| <pre class="methodSignature">public void setInstructionTracing​(boolean instructionTrace)</pre> |
| <div class="block">Turn instruction tracing on or off. A trace of all instructions executed will be |
| sent to System.out.</div> |
| </li> |
| </ul> |
| <a id="setInstructionRecording(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setInstructionRecording</h4> |
| <pre class="methodSignature">public void setInstructionRecording​(boolean instructionRecord)</pre> |
| <div class="block">Turn instruction recording on or off. A trace of all instructions executed will be |
| saved.</div> |
| </li> |
| </ul> |
| <a id="getTraceEntries()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getTraceEntries</h4> |
| <pre class="methodSignature">public <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink" target="_blank">List</a> getTraceEntries()</pre> |
| <div class="block">Return a list of the instruction trace entries</div> |
| </li> |
| </ul> |
| <a id="setBranchInstructionTracing(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setBranchInstructionTracing</h4> |
| <pre class="methodSignature">public void setBranchInstructionTracing​(boolean branchInstructionTrace)</pre> |
| <div class="block">Turn branch instruction tracing on or off. A trace of all branch instructions executed will be |
| sent to System.out.</div> |
| </li> |
| </ul> |
| <a id="setCallTreeCapture()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setCallTreeCapture</h4> |
| <pre class="methodSignature">public void setCallTreeCapture()</pre> |
| <div class="block">Turn call tree capturing on. The call tree may be retrieved with <a href="#getCallTreeRoot()"><code>getCallTreeRoot()</code></a>.</div> |
| </li> |
| </ul> |
| <a id="getCallTreeRoot()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getCallTreeRoot</h4> |
| <pre class="methodSignature">public <a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a> getCallTreeRoot()</pre> |
| <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> |
| </li> |
| </ul> |
| <a id="getCurrentFunction()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getCurrentFunction</h4> |
| <pre class="methodSignature">public <a href="FunctionEmulator.Function.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.Function</a> getCurrentFunction()</pre> |
| <div class="block">Returns the current function. User callbacks can make use of this.</div> |
| </li> |
| </ul> |
| <a id="getEmulator()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getEmulator</h4> |
| <pre class="methodSignature">public <a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator</a> getEmulator()</pre> |
| <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> |
| </li> |
| </ul> |
| <a id="setArgument(int,int)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setArgument</h4> |
| <pre class="methodSignature">public void setArgument​(int argNumber, |
| int value)</pre> |
| <div class="block">Sets the given function argument.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></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> |
| </li> |
| </ul> |
| <a id="setArgument(int,long)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setArgument</h4> |
| <pre class="methodSignature">public void setArgument​(int argNumber, |
| long value)</pre> |
| <div class="block">Sets the given function argument.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></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> |
| </li> |
| </ul> |
| <a id="getArgument(int)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getArgument</h4> |
| <pre class="methodSignature">public long getArgument​(int argNumber)</pre> |
| <div class="block">Gets the given function argument. To be used from callback functions.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>argNumber</code> - the number of the argument to be got, starting at one</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="getMutableAddressSpace()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getMutableAddressSpace</h4> |
| <pre class="methodSignature">public <a href="../dumpreader/MutableAddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">MutableAddressSpace</a> getMutableAddressSpace()</pre> |
| <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> |
| </li> |
| </ul> |
| <a id="registerCallbackFunction(com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>registerCallbackFunction</h4> |
| <pre class="methodSignature">public long registerCallbackFunction​(<a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback)</pre> |
| <div class="block">Registers a callback function.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the address of the linkage pointer. This is what you put in place of a |
| C function pointer.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="overrideFunction(java.lang.String,com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>overrideFunction</h4> |
| <pre class="methodSignature">public void overrideFunction​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName, |
| <a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback) |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></pre> |
| <div class="block">Allows the given function to be "overridden". The supplied callback function will |
| be called rather than the real one.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></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><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="overrideFunction(long,com.ibm.j9ddr.corereaders.tdump.zebedee.le.FunctionEmulator.CallbackFunction)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>overrideFunction</h4> |
| <pre class="methodSignature">public void overrideFunction​(long functionEntryPoint, |
| <a href="FunctionEmulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.le">FunctionEmulator.CallbackFunction</a> callback) |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></pre> |
| <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> |
| <dt><span class="paramLabel">Parameters:</span></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><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="overrideFunction(java.lang.String,long,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>overrideFunction</h4> |
| <pre class="methodSignature">public void overrideFunction​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName, |
| long retVal, |
| boolean protect)</pre> |
| </li> |
| </ul> |
| <a id="overrideFunction(java.lang.String,long)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>overrideFunction</h4> |
| <pre class="methodSignature">public void overrideFunction​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName, |
| long returnValue)</pre> |
| </li> |
| </ul> |
| <a id="run()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>run</h4> |
| <pre class="methodSignature">public long run() |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre> |
| <div class="block">Now run the emulator. This method returns when the emulated function returns.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the return value from the function (if any)</dd> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="run(long)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>run</h4> |
| <pre class="methodSignature">public long run​(long functionPointer) |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre> |
| <div class="block">Run the emulator using the supplied xplink C function pointer. This method |
| returns when the emulated function returns.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the return value from the function (if any)</dd> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="run(java.lang.String)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>run</h4> |
| <pre class="methodSignature">public long run​(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> functionName) |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a>, |
| <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></pre> |
| <div class="block">Run the emulator using the supplied xplink C function. This method |
| returns when the emulated function returns.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the return value from the function (if any)</dd> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">NoSuchMethodException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="recordCalledFunctions()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>recordCalledFunctions</h4> |
| <pre class="methodSignature">public void recordCalledFunctions() |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre> |
| <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> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="recordAllCalledFunctions()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>recordAllCalledFunctions</h4> |
| <pre class="methodSignature">public void recordAllCalledFunctions() |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="runAllPaths()"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>runAllPaths</h4> |
| <pre class="methodSignature">public void runAllPaths() |
| throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre> |
| <div class="block">Run all paths of the function. This is used for disassembly.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </main> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <footer role="contentinfo"> |
| <nav role="navigation"> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a id="navbar.bottom"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.bottom.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" 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="navBarCell1Rev">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 class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../../../../allclasses.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <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="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a id="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| </nav> |
| <p class="legalCopy"><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> |
| </body> |
| </html> |