You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1218 lines
64 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Pin: IMG: Image Object</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Pin
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">IMG: Image Object</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gadc19a11e75e0adb0fa8530adbb52d9b7"><td class="memItemLeft" align="right" valign="top">typedef VOID(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gadc19a11e75e0adb0fa8530adbb52d9b7">LEVEL_PINCLIENT::IMAGECALLBACK</a>) (IMG, VOID *)</td></tr>
<tr class="separator:gadc19a11e75e0adb0fa8530adbb52d9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga9305bb3a4754edce47d524f79493ce2f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga9305bb3a4754edce47d524f79493ce2f">LEVEL_CORE::IMG_TYPE</a> { <br />
&#160;&#160;<b>IMG_TYPE_INVALID</b>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9305bb3a4754edce47d524f79493ce2fa7503e536f68cd7d0eb72d2c12e21b512">LEVEL_CORE::IMG_TYPE_STATIC</a>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9305bb3a4754edce47d524f79493ce2faf7b1160c77b1ee31fb9722bd05e5534d">LEVEL_CORE::IMG_TYPE_SHARED</a>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9305bb3a4754edce47d524f79493ce2fa92a0907e18a8cf0373b6b953b3d10a3e">LEVEL_CORE::IMG_TYPE_SHAREDLIB</a>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9305bb3a4754edce47d524f79493ce2fa56f475ff6336a3cfa94a40a774b075ed">LEVEL_CORE::IMG_TYPE_RELOCATABLE</a>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9305bb3a4754edce47d524f79493ce2fa3088d7996c4db5879e9c576ab18ffe01">LEVEL_CORE::IMG_TYPE_DYNAMIC_CODE</a>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9305bb3a4754edce47d524f79493ce2fa695304dbcee757ff4196d2ad91914301">LEVEL_CORE::IMG_TYPE_API_CREATED</a>,
<br />
&#160;&#160;<b>IMG_TYPE_LAST</b>
<br />
}</td></tr>
<tr class="separator:ga9305bb3a4754edce47d524f79493ce2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a483f9778ab07e42915a1da0b4640dc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga9a483f9778ab07e42915a1da0b4640dc">LEVEL_CORE::IMG_PROPERTY</a> { <br />
&#160;&#160;<b>IMG_PROPERTY_INVALID</b>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9a483f9778ab07e42915a1da0b4640dca03a9da3728af7404771090dd396a1d58">LEVEL_CORE::IMG_PROPERTY_SHSTK_ENABLED</a>,
<br />
&#160;&#160;<a class="el" href="group__IMG__BASIC__API.html#gga9a483f9778ab07e42915a1da0b4640dcac00b834d7bdaaf6c423933d94ba606a3">LEVEL_CORE::IMG_PROPERTY_IBT_ENABLED</a>,
<br />
&#160;&#160;<b>IMG_PROPERTY_LAST</b>
<br />
}</td></tr>
<tr class="separator:ga9a483f9778ab07e42915a1da0b4640dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad253413a215b0730931e785fdea285e2"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gad253413a215b0730931e785fdea285e2">LEVEL_PINCLIENT::IMG_Next</a> (IMG img)</td></tr>
<tr class="separator:gad253413a215b0730931e785fdea285e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga523b30e6483010ae4f257554740c9849"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga523b30e6483010ae4f257554740c9849">LEVEL_PINCLIENT::IMG_Prev</a> (IMG img)</td></tr>
<tr class="separator:ga523b30e6483010ae4f257554740c9849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fad5a2c5057d27742af9bd2d6f78098"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga3fad5a2c5057d27742af9bd2d6f78098">LEVEL_PINCLIENT::IMG_Invalid</a> ()</td></tr>
<tr class="separator:ga3fad5a2c5057d27742af9bd2d6f78098"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a31e066181719e79810b0cf784e726e"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga2a31e066181719e79810b0cf784e726e">LEVEL_PINCLIENT::IMG_Valid</a> (IMG img)</td></tr>
<tr class="separator:ga2a31e066181719e79810b0cf784e726e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa9597e002a76d7a5e5e1b530bb263aad"><td class="memItemLeft" align="right" valign="top">SEC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gaa9597e002a76d7a5e5e1b530bb263aad">LEVEL_PINCLIENT::IMG_SecHead</a> (IMG img)</td></tr>
<tr class="separator:gaa9597e002a76d7a5e5e1b530bb263aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1dd3caa46530d580d28259df2cf6f60"><td class="memItemLeft" align="right" valign="top">SEC&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gaf1dd3caa46530d580d28259df2cf6f60">LEVEL_PINCLIENT::IMG_SecTail</a> (IMG img)</td></tr>
<tr class="separator:gaf1dd3caa46530d580d28259df2cf6f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5394fba999264f58cb4838b8061dd79f"><td class="memItemLeft" align="right" valign="top">SYM&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga5394fba999264f58cb4838b8061dd79f">LEVEL_PINCLIENT::IMG_RegsymHead</a> (IMG img)</td></tr>
<tr class="separator:ga5394fba999264f58cb4838b8061dd79f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d3ee71c42f4d3686aafac90cd585d57"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga8d3ee71c42f4d3686aafac90cd585d57">LEVEL_PINCLIENT::IMG_EntryAddress</a> (IMG img)</td></tr>
<tr class="separator:ga8d3ee71c42f4d3686aafac90cd585d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f43cad9d9cbc3ab4b9d32746a0d5ec7"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga1f43cad9d9cbc3ab4b9d32746a0d5ec7">LEVEL_PINCLIENT::IMG_HasProperty</a> (IMG img, IMG_PROPERTY property)</td></tr>
<tr class="separator:ga1f43cad9d9cbc3ab4b9d32746a0d5ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22acd549352fc062c6c62c82e7a09354"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga22acd549352fc062c6c62c82e7a09354">LEVEL_PINCLIENT::IMG_Name</a> (IMG img)</td></tr>
<tr class="separator:ga22acd549352fc062c6c62c82e7a09354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb638cffcab6c6ce15595e34a2188f64"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gadb638cffcab6c6ce15595e34a2188f64">LEVEL_PINCLIENT::IMG_Gp</a> (IMG img)</td></tr>
<tr class="separator:gadb638cffcab6c6ce15595e34a2188f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28653b8b716d88949c50cac0252d38a1"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga28653b8b716d88949c50cac0252d38a1">LEVEL_PINCLIENT::IMG_LoadOffset</a> (IMG img)</td></tr>
<tr class="separator:ga28653b8b716d88949c50cac0252d38a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga287976c95e15d6f5655ce9a665723711"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga287976c95e15d6f5655ce9a665723711">LEVEL_PINCLIENT::IMG_LowAddress</a> (IMG img)</td></tr>
<tr class="separator:ga287976c95e15d6f5655ce9a665723711"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9057f7b0d638da4e104683f492d2f300"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga9057f7b0d638da4e104683f492d2f300">LEVEL_PINCLIENT::IMG_HighAddress</a> (IMG img)</td></tr>
<tr class="separator:ga9057f7b0d638da4e104683f492d2f300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad194d40eeeff2afd8a3ae0c6ade3359c"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">LEVEL_PINCLIENT::IMG_StartAddress</a> (IMG img)</td></tr>
<tr class="separator:gad194d40eeeff2afd8a3ae0c6ade3359c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb2f9299a425268ad06747da54d40418"><td class="memItemLeft" align="right" valign="top">USIZE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gafb2f9299a425268ad06747da54d40418">LEVEL_PINCLIENT::IMG_SizeMapped</a> (IMG img)</td></tr>
<tr class="separator:gafb2f9299a425268ad06747da54d40418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac39ef3534ad9ade281df0c2938abe695"><td class="memItemLeft" align="right" valign="top">IMG_TYPE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gac39ef3534ad9ade281df0c2938abe695">LEVEL_PINCLIENT::IMG_Type</a> (IMG img)</td></tr>
<tr class="separator:gac39ef3534ad9ade281df0c2938abe695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8f52592ec23aa3eee464d3400f0ab51"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gac8f52592ec23aa3eee464d3400f0ab51">LEVEL_PINCLIENT::IMG_IsMainExecutable</a> (IMG x)</td></tr>
<tr class="separator:gac8f52592ec23aa3eee464d3400f0ab51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9554196d5213d2d8e8bf6d4f2ce08a82"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga9554196d5213d2d8e8bf6d4f2ce08a82">LEVEL_PINCLIENT::IMG_hasLinesData</a> (IMG x)</td></tr>
<tr class="separator:ga9554196d5213d2d8e8bf6d4f2ce08a82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8da4468dd8be5a65b31bc1c558bc8b6a"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga8da4468dd8be5a65b31bc1c558bc8b6a">LEVEL_PINCLIENT::IMG_IsInterpreter</a> (IMG x)</td></tr>
<tr class="separator:ga8da4468dd8be5a65b31bc1c558bc8b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d8e588e75d2dd3f2b3959b9e8d21402"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga3d8e588e75d2dd3f2b3959b9e8d21402">LEVEL_PINCLIENT::IMG_IsStaticExecutable</a> (IMG x)</td></tr>
<tr class="separator:ga3d8e588e75d2dd3f2b3959b9e8d21402"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f6693257db1e0c70cea152a86df4653"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga7f6693257db1e0c70cea152a86df4653">LEVEL_PINCLIENT::IMG_IsVDSO</a> (IMG img)</td></tr>
<tr class="separator:ga7f6693257db1e0c70cea152a86df4653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb1f082009379b8efe0567239d256a2b"><td class="memItemLeft" align="right" valign="top">UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gadb1f082009379b8efe0567239d256a2b">LEVEL_PINCLIENT::IMG_NumRegions</a> (IMG img)</td></tr>
<tr class="separator:gadb1f082009379b8efe0567239d256a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga048915d5f7bcb371ed460e679e5f143a"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga048915d5f7bcb371ed460e679e5f143a">LEVEL_PINCLIENT::IMG_RegionHighAddress</a> (IMG img, UINT32 n)</td></tr>
<tr class="separator:ga048915d5f7bcb371ed460e679e5f143a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86a6cc871c017abe758742b82380353c"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga86a6cc871c017abe758742b82380353c">LEVEL_PINCLIENT::IMG_RegionLowAddress</a> (IMG img, UINT32 n)</td></tr>
<tr class="separator:ga86a6cc871c017abe758742b82380353c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9802263d9ceb357e46f215d86294548"><td class="memItemLeft" align="right" valign="top">UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gae9802263d9ceb357e46f215d86294548">LEVEL_PINCLIENT::IMG_Id</a> (IMG x)</td></tr>
<tr class="separator:gae9802263d9ceb357e46f215d86294548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga512bbe967b9536e2c0ce127b0054bacb"><td class="memItemLeft" align="right" valign="top">VOID *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga512bbe967b9536e2c0ce127b0054bacb">LEVEL_PINCLIENT::IMG_DynamicRawData</a> (IMG img)</td></tr>
<tr class="separator:ga512bbe967b9536e2c0ce127b0054bacb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a14587e0c206aac7cbd0e6c14e9ca44"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga2a14587e0c206aac7cbd0e6c14e9ca44">LEVEL_PINCLIENT::IMG_FindImgById</a> (UINT32 id)</td></tr>
<tr class="separator:ga2a14587e0c206aac7cbd0e6c14e9ca44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30b412953fdb2924c9db4f49398cfc7b"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga30b412953fdb2924c9db4f49398cfc7b">LEVEL_PINCLIENT::IMG_FindByAddress</a> (ADDRINT address)</td></tr>
<tr class="separator:ga30b412953fdb2924c9db4f49398cfc7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga494869187b5d94d7dd346bc9ff49642f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__PIN__CALLBACKS.html#ga3ba1895c602cd5b2863b7b75840187a4">PIN_CALLBACK</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga494869187b5d94d7dd346bc9ff49642f">LEVEL_PINCLIENT::IMG_AddInstrumentFunction</a> (<a class="el" href="group__IMG__BASIC__API.html#gadc19a11e75e0adb0fa8530adbb52d9b7">IMAGECALLBACK</a> fun, VOID *v)</td></tr>
<tr class="separator:ga494869187b5d94d7dd346bc9ff49642f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd37dea66b2c1c46ef45d77023926a95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__PIN__CALLBACKS.html#ga3ba1895c602cd5b2863b7b75840187a4">PIN_CALLBACK</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gadd37dea66b2c1c46ef45d77023926a95">LEVEL_PINCLIENT::IMG_AddUnloadFunction</a> (<a class="el" href="group__IMG__BASIC__API.html#gadc19a11e75e0adb0fa8530adbb52d9b7">IMAGECALLBACK</a> fun, VOID *v)</td></tr>
<tr class="separator:gadd37dea66b2c1c46ef45d77023926a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2da1b7ebafc13579407199ef026adbc6"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#ga2da1b7ebafc13579407199ef026adbc6">LEVEL_PINCLIENT::IMG_Open</a> (const std::string &amp;filename)</td></tr>
<tr class="separator:ga2da1b7ebafc13579407199ef026adbc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc73d2aa6dcfec0e2fe57b602905c0b8"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gabc73d2aa6dcfec0e2fe57b602905c0b8">LEVEL_PINCLIENT::IMG_Close</a> (IMG img)</td></tr>
<tr class="separator:gabc73d2aa6dcfec0e2fe57b602905c0b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7f7aef4682f740253cbbc139562826a"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gaf7f7aef4682f740253cbbc139562826a">LEVEL_PINCLIENT::APP_ImgHead</a> ()</td></tr>
<tr class="separator:gaf7f7aef4682f740253cbbc139562826a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7bd2faff9cbc8a30e73cc6e7d845d0f"><td class="memItemLeft" align="right" valign="top">IMG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IMG__BASIC__API.html#gad7bd2faff9cbc8a30e73cc6e7d845d0f">LEVEL_PINCLIENT::APP_ImgTail</a> ()</td></tr>
<tr class="separator:gad7bd2faff9cbc8a30e73cc6e7d845d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>An IMG represents all the data structures corresponding to a binary (executable). Can be accessed at instrumentation time and analysis time. Note: Shared libraries are also represented by the IMG abstraction. Moreover, the IMG objects are created in a lazy fashion. Only if a shared library is loaded and IMG is created. Over the lifetime of a process the number IMG objects created may hence increase.<br />
APIs from this group are available in any thread, including any internal thread spawned by the tool.</p>
<p>Example tools:</p>
<p><a class="el" href="index.html#ImageLoad">Detecting the Loading and Unloading of Images (Image Instrumentation)</a></p>
<p>Iteration idioms:</p>
<div class="fragment"><div class="line"><span class="comment">// Visit every loaded image</span></div><div class="line"><span class="keywordflow">for</span>( IMG img= <a class="code" href="group__IMG__BASIC__API.html#gaf7f7aef4682f740253cbbc139562826a">APP_ImgHead</a>(); <a class="code" href="group__IMG__BASIC__API.html#ga2a31e066181719e79810b0cf784e726e">IMG_Valid</a>(img); img = <a class="code" href="group__IMG__BASIC__API.html#gad253413a215b0730931e785fdea285e2">IMG_Next</a>(img) )</div></div><!-- fragment --> <h2 class="groupheader">Typedef Documentation</h2>
<a id="gadc19a11e75e0adb0fa8530adbb52d9b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadc19a11e75e0adb0fa8530adbb52d9b7">&#9670;&nbsp;</a></span>IMAGECALLBACK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef VOID(* LEVEL_PINCLIENT::IMAGECALLBACK) (IMG, VOID *)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Type of function to be called when an image is loaded </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga9a483f9778ab07e42915a1da0b4640dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9a483f9778ab07e42915a1da0b4640dc">&#9670;&nbsp;</a></span>IMG_PROPERTY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__IMG__BASIC__API.html#ga9a483f9778ab07e42915a1da0b4640dc">LEVEL_CORE::IMG_PROPERTY</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Properties available for an image. Typically defined as meta data within the image. May define some specific hardware that is used or needed or some features enabled by the image. Property may be OS/CPU specific. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga9a483f9778ab07e42915a1da0b4640dca03a9da3728af7404771090dd396a1d58"></a>IMG_PROPERTY_SHSTK_ENABLED&#160;</td><td class="fielddoc"><p>CET shadow stack enabled. Supported only for Linux </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9a483f9778ab07e42915a1da0b4640dcac00b834d7bdaaf6c423933d94ba606a3"></a>IMG_PROPERTY_IBT_ENABLED&#160;</td><td class="fielddoc"><p>CET indirect branch tracking enabled. Supported only for Linux </p>
</td></tr>
</table>
</div>
</div>
<a id="ga9305bb3a4754edce47d524f79493ce2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9305bb3a4754edce47d524f79493ce2f">&#9670;&nbsp;</a></span>IMG_TYPE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__IMG__BASIC__API.html#ga9305bb3a4754edce47d524f79493ce2f">LEVEL_CORE::IMG_TYPE</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga9305bb3a4754edce47d524f79493ce2fa7503e536f68cd7d0eb72d2c12e21b512"></a>IMG_TYPE_STATIC&#160;</td><td class="fielddoc"><p>Main image, linked with -static. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9305bb3a4754edce47d524f79493ce2faf7b1160c77b1ee31fb9722bd05e5534d"></a>IMG_TYPE_SHARED&#160;</td><td class="fielddoc"><p>Main image, linked against shared libraries. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9305bb3a4754edce47d524f79493ce2fa92a0907e18a8cf0373b6b953b3d10a3e"></a>IMG_TYPE_SHAREDLIB&#160;</td><td class="fielddoc"><p>Shared library or main image linked with -pie. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9305bb3a4754edce47d524f79493ce2fa56f475ff6336a3cfa94a40a774b075ed"></a>IMG_TYPE_RELOCATABLE&#160;</td><td class="fielddoc"><p>Relocatble object (.o file) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9305bb3a4754edce47d524f79493ce2fa3088d7996c4db5879e9c576ab18ffe01"></a>IMG_TYPE_DYNAMIC_CODE&#160;</td><td class="fielddoc"><p>Dynamically created code. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9305bb3a4754edce47d524f79493ce2fa695304dbcee757ff4196d2ad91914301"></a>IMG_TYPE_API_CREATED&#160;</td><td class="fielddoc"><p>Artificial image created by IMG_CreateAt () </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaf7f7aef4682f740253cbbc139562826a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf7f7aef4682f740253cbbc139562826a">&#9670;&nbsp;</a></span>APP_ImgHead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::APP_ImgHead </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The first image loaded into memory</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gad7bd2faff9cbc8a30e73cc6e7d845d0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7bd2faff9cbc8a30e73cc6e7d845d0f">&#9670;&nbsp;</a></span>APP_ImgTail()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::APP_ImgTail </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The last image loaded into memory</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga494869187b5d94d7dd346bc9ff49642f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga494869187b5d94d7dd346bc9ff49642f">&#9670;&nbsp;</a></span>IMG_AddInstrumentFunction()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__PIN__CALLBACKS.html#ga3ba1895c602cd5b2863b7b75840187a4">PIN_CALLBACK</a> LEVEL_PINCLIENT::IMG_AddInstrumentFunction </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__IMG__BASIC__API.html#gadc19a11e75e0adb0fa8530adbb52d9b7">IMAGECALLBACK</a>&#160;</td>
<td class="paramname"><em>fun</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VOID *&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Use this to register a call back to catch the loading of an image </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fun</td><td>Instrumentation function for images, it is passed an image and v </td></tr>
<tr><td class="paramname">v</td><td>the value of to pass to fun when an image is loaded</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>PIN_CALLBACK A handle to a callback that can be used to further modify this callback's properties</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The pin client lock is obtained during the call of this API.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gadd37dea66b2c1c46ef45d77023926a95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadd37dea66b2c1c46ef45d77023926a95">&#9670;&nbsp;</a></span>IMG_AddUnloadFunction()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__PIN__CALLBACKS.html#ga3ba1895c602cd5b2863b7b75840187a4">PIN_CALLBACK</a> LEVEL_PINCLIENT::IMG_AddUnloadFunction </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__IMG__BASIC__API.html#gadc19a11e75e0adb0fa8530adbb52d9b7">IMAGECALLBACK</a>&#160;</td>
<td class="paramname"><em>fun</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VOID *&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Register fun as a call back to be used when an image is unloaded. This is not an instrumentation function&ndash;it doesn't make sense to instrument a function when it removed from memory. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fun</td><td>passed an image and v when an image is unloaded </td></tr>
<tr><td class="paramname">v</td><td>the value to pass to fun when an image is unloaded</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>PIN_CALLBACK A handle to a callback that can be used to further modify this callback's properties</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The pin client lock is obtained during the call of this API. </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gabc73d2aa6dcfec0e2fe57b602905c0b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabc73d2aa6dcfec0e2fe57b602905c0b8">&#9670;&nbsp;</a></span>IMG_Close()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VOID LEVEL_PINCLIENT::IMG_Close </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the open image.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The IMG that was previously opened.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga512bbe967b9536e2c0ce127b0054bacb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga512bbe967b9536e2c0ce127b0054bacb">&#9670;&nbsp;</a></span>IMG_DynamicRawData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VOID* LEVEL_PINCLIENT::IMG_DynamicRawData </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the pointer to the object that was passed by the application for reporting the creation of a dynamic image via the Jit Profiling API. The pointer is available only for dynamic images, and only during the image load and routine instrumentation callbacks. In all other cases, the function returns NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the object, or NULL. </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT<br />
<b>O/S</b>: Linux*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga8d3ee71c42f4d3686aafac90cd585d57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d3ee71c42f4d3686aafac90cd585d57">&#9670;&nbsp;</a></span>IMG_EntryAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_EntryAddress </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>Pin image handle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Address of first instruction executed when image is loaded</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga30b412953fdb2924c9db4f49398cfc7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga30b412953fdb2924c9db4f49398cfc7b">&#9670;&nbsp;</a></span>IMG_FindByAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::IMG_FindByAddress </td>
<td>(</td>
<td class="paramtype">ADDRINT&#160;</td>
<td class="paramname"><em>address</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Find image by address. For each image, check if the address is within the mapped memory region of one of its segments. </p><dl class="section return"><dt>Returns</dt><dd>IMG object, valid or invalid</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The pin client lock is obtained during the call of this API.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga2a14587e0c206aac7cbd0e6c14e9ca44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a14587e0c206aac7cbd0e6c14e9ca44">&#9670;&nbsp;</a></span>IMG_FindImgById()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::IMG_FindImgById </td>
<td>(</td>
<td class="paramtype">UINT32&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Find image by Id </p><dl class="section return"><dt>Returns</dt><dd>IMG object, valid or invalid</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gadb638cffcab6c6ce15595e34a2188f64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb638cffcab6c6ce15595e34a2188f64">&#9670;&nbsp;</a></span>IMG_Gp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_Gp </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Global pointer (GP) of image, if a GP is used to address global data</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga9554196d5213d2d8e8bf6d4f2ce08a82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9554196d5213d2d8e8bf6d4f2ce08a82">&#9670;&nbsp;</a></span>IMG_hasLinesData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_hasLinesData </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>TRUE if img has debug information that includes the lines information.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga1f43cad9d9cbc3ab4b9d32746a0d5ec7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1f43cad9d9cbc3ab4b9d32746a0d5ec7">&#9670;&nbsp;</a></span>IMG_HasProperty()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_HasProperty </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">IMG_PROPERTY&#160;</td>
<td class="paramname"><em>property</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if image has the specificfied property </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>Pin image handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">property</td><td>the property to check of type IMG_PROPERTY </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>if image supports specific property in specific mode</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga9057f7b0d638da4e104683f492d2f300"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9057f7b0d638da4e104683f492d2f300">&#9670;&nbsp;</a></span>IMG_HighAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_HighAddress </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tells the highest address of any code or data loaded by the image. This is the address of the last byte loaded by the image.</p>
<dl class="section remark"><dt>Remarks</dt><dd>If the image is split in memory, regions from other images might be mapped between its regions. In this case, the function will return the high address of the text segment. See <a class="el" href="group__IMG__BASIC__API.html#gadb1f082009379b8efe0567239d256a2b">IMG_NumRegions</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The image's highest address or the text segment high address if the image is split.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gae9802263d9ceb357e46f215d86294548"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae9802263d9ceb357e46f215d86294548">&#9670;&nbsp;</a></span>IMG_Id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">UINT32 LEVEL_PINCLIENT::IMG_Id </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a unique ID for the image. If an image is unloaded, the ID is not reused for a different image. If an image is unloaded and the same one is loaded back, the ID is different. </p><dl class="section return"><dt>Returns</dt><dd>Unique ID for the image.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga3fad5a2c5057d27742af9bd2d6f78098"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fad5a2c5057d27742af9bd2d6f78098">&#9670;&nbsp;</a></span>IMG_Invalid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::IMG_Invalid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Used to indicate no image</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga8da4468dd8be5a65b31bc1c558bc8b6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8da4468dd8be5a65b31bc1c558bc8b6a">&#9670;&nbsp;</a></span>IMG_IsInterpreter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_IsInterpreter </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>On operating systems that have the concept of loader image. (i.e. another program that is resposible to load the application), this function return TRUE for the image of the loader. In operating system that don't have the concept of loader, this function returns FALSE on all images.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if this is the image of the application's loader (interpreter).</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gac8f52592ec23aa3eee464d3400f0ab51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac8f52592ec23aa3eee464d3400f0ab51">&#9670;&nbsp;</a></span>IMG_IsMainExecutable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_IsMainExecutable </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>TRUE for the image Pin was applied on in the command line (i.e. first param after &ndash;)</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga3d8e588e75d2dd3f2b3959b9e8d21402"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3d8e588e75d2dd3f2b3959b9e8d21402">&#9670;&nbsp;</a></span>IMG_IsStaticExecutable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_IsStaticExecutable </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>TRUE if this is the static executable</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga7f6693257db1e0c70cea152a86df4653"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f6693257db1e0c70cea152a86df4653">&#9670;&nbsp;</a></span>IMG_IsVDSO()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_IsVDSO </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>On Linux this function return TRUE for the image of the VDSO. On other operating systems return FALSE for all images.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if this is the VDSO image.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga28653b8b716d88949c50cac0252d38a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28653b8b716d88949c50cac0252d38a1">&#9670;&nbsp;</a></span>IMG_LoadOffset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_LoadOffset </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Offset from the image's link-time address to its load-time address.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga287976c95e15d6f5655ce9a665723711"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga287976c95e15d6f5655ce9a665723711">&#9670;&nbsp;</a></span>IMG_LowAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_LowAddress </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tells the lowest address of any code or data loaded by the image.</p>
<dl class="section remark"><dt>Remarks</dt><dd>If the image is split in memory, regions from other images might be mapped between its regions. In this case, the function will return the low address of the text segment. See <a class="el" href="group__IMG__BASIC__API.html#gadb1f082009379b8efe0567239d256a2b">IMG_NumRegions</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The image's lowest address or the text segment low address if the image is split.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga22acd549352fc062c6c62c82e7a09354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga22acd549352fc062c6c62c82e7a09354">&#9670;&nbsp;</a></span>IMG_Name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string&amp; LEVEL_PINCLIENT::IMG_Name </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Fully qualified actual file name of image. Image names are encoded in UTF8 (a superset of ASCII), this is supported for Linux (only for locales encoded in UTF8) and Windows</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gad253413a215b0730931e785fdea285e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad253413a215b0730931e785fdea285e2">&#9670;&nbsp;</a></span>IMG_Next()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::IMG_Next </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Of the list of currently loaded images in memory it returns the image loaded after image x, or <a class="el" href="group__IMG__BASIC__API.html#ga3fad5a2c5057d27742af9bd2d6f78098">IMG_Invalid()</a> if x is the last image</dd></dl>
<p>Skip shadow image (vdso or dynamic code)</p>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gadb1f082009379b8efe0567239d256a2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb1f082009379b8efe0567239d256a2b">&#9670;&nbsp;</a></span>IMG_NumRegions()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">UINT32 LEVEL_PINCLIENT::IMG_NumRegions </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>number of consecutive regions of the image in memory</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga2da1b7ebafc13579407199ef026adbc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2da1b7ebafc13579407199ef026adbc6">&#9670;&nbsp;</a></span>IMG_Open()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::IMG_Open </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Allows one to open an image and browse it statically. There can only be one image open at a time. File names are encoded in UTF8 (a superset of ASCII).</p>
<dl class="section note"><dt>Note</dt><dd>This API can only be used at a safe point, which is before calling <a class="el" href="group__PIN__CONTROL.html#gaded401aeb030a76ee3396137b06ad808">PIN_StartProgram()</a>(/or similar)</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The image file name. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The opened image, or IMG_INVALID() if the image cannot be opened.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga523b30e6483010ae4f257554740c9849"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga523b30e6483010ae4f257554740c9849">&#9670;&nbsp;</a></span>IMG_Prev()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG LEVEL_PINCLIENT::IMG_Prev </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Of the list of currently loaded images in memory it returns the image loaded prior to image x, or <a class="el" href="group__IMG__BASIC__API.html#ga3fad5a2c5057d27742af9bd2d6f78098">IMG_Invalid()</a> if x is the first image</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga048915d5f7bcb371ed460e679e5f143a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga048915d5f7bcb371ed460e679e5f143a">&#9670;&nbsp;</a></span>IMG_RegionHighAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_RegionHighAddress </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UINT32&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the high address of the n'th region </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>n starts at 0</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga86a6cc871c017abe758742b82380353c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga86a6cc871c017abe758742b82380353c">&#9670;&nbsp;</a></span>IMG_RegionLowAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_RegionLowAddress </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UINT32&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the low address of the n'th region </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>n starts at 0</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga5394fba999264f58cb4838b8061dd79f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5394fba999264f58cb4838b8061dd79f">&#9670;&nbsp;</a></span>IMG_RegsymHead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SYM LEVEL_PINCLIENT::IMG_RegsymHead </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>First regular symbol in image</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gaa9597e002a76d7a5e5e1b530bb263aad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa9597e002a76d7a5e5e1b530bb263aad">&#9670;&nbsp;</a></span>IMG_SecHead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SEC LEVEL_PINCLIENT::IMG_SecHead </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>First section in image</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gaf1dd3caa46530d580d28259df2cf6f60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1dd3caa46530d580d28259df2cf6f60">&#9670;&nbsp;</a></span>IMG_SecTail()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SEC LEVEL_PINCLIENT::IMG_SecTail </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Last section in image </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gafb2f9299a425268ad06747da54d40418"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb2f9299a425268ad06747da54d40418">&#9670;&nbsp;</a></span>IMG_SizeMapped()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">USIZE LEVEL_PINCLIENT::IMG_SizeMapped </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tells the size of the raw image mapped by Pin, including the size of the image's symbolic information, which is not normally mapped by the application. Use this with <a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">IMG_StartAddress()</a> to find the entire memory range of the raw image mapped by Pin.</p>
<p>Note, this does <em>not</em> give the address range of the image from the application's perspective. To get that, use <a class="el" href="group__IMG__BASIC__API.html#ga287976c95e15d6f5655ce9a665723711">IMG_LowAddress()</a> and <a class="el" href="group__IMG__BASIC__API.html#ga9057f7b0d638da4e104683f492d2f300">IMG_HighAddress()</a>.</p>
<p>On Linux, the file is mapped in image-load callback or after IMG_Open. In other cases the IMG_SizeMapped returns 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Size (bytes) of the raw image file mapped by Pin.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gad194d40eeeff2afd8a3ae0c6ade3359c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad194d40eeeff2afd8a3ae0c6ade3359c">&#9670;&nbsp;</a></span>IMG_StartAddress()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ADDRINT LEVEL_PINCLIENT::IMG_StartAddress </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>On Windows, the whole image has been loaded by system loader at once. <a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">IMG_StartAddress()</a> gives the pointer to the image, mapped by loader. If you are working inside image-load callback - <a class="el" href="group__IMG__BASIC__API.html#ga287976c95e15d6f5655ce9a665723711">IMG_LowAddress()</a> and <a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">IMG_StartAddress()</a> return the same value.</p>
<p>On Unix, the loader maps only portions of the image file that contain code and data. Additionally, Pin maps the whole image file for parsing. <a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">IMG_StartAddress()</a> returns a pointer to the memory mapped file. After return form image-load callback the whole image file is being unmapped and the pointer becomes invalid. The <a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">IMG_StartAddress()</a> returns 0.</p>
<p>Note, On Unix, the <a class="el" href="group__IMG__BASIC__API.html#ga287976c95e15d6f5655ce9a665723711">IMG_LowAddress()</a> and <a class="el" href="group__IMG__BASIC__API.html#gad194d40eeeff2afd8a3ae0c6ade3359c">IMG_StartAddress()</a> return different values.</p>
<p>On <a class="el" href="group__IMG__BASIC__API.html#ga2da1b7ebafc13579407199ef026adbc6">IMG_Open()</a>, Pin maps the whole image into memory and the pointer is valid until <a class="el" href="group__IMG__BASIC__API.html#gabc73d2aa6dcfec0e2fe57b602905c0b8">IMG_Close()</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">img</td><td>The Pin image handle.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the start of the raw image file.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="gac39ef3534ad9ade281df0c2938abe695"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac39ef3534ad9ade281df0c2938abe695">&#9670;&nbsp;</a></span>IMG_Type()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IMG_TYPE LEVEL_PINCLIENT::IMG_Type </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Image type</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
<a id="ga2a31e066181719e79810b0cf784e726e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a31e066181719e79810b0cf784e726e">&#9670;&nbsp;</a></span>IMG_Valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_PINCLIENT::IMG_Valid </td>
<td>(</td>
<td class="paramtype">IMG&#160;</td>
<td class="paramname"><em>img</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>True if x is not <a class="el" href="group__IMG__BASIC__API.html#ga3fad5a2c5057d27742af9bd2d6f78098">IMG_Invalid()</a></dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br />
<b>O/S</b>: Linux, Windows &amp; macOS*<br />
<b>CPU:</b> All<br />
</dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>