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.
Theodosius/doxygen/html/classtheo_1_1decomp_1_1symb...

570 lines
32 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Theodosius: theo::decomp::symbol_t Class Reference</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">Theodosius
&#160;<span id="projectnumber">v3.0</span>
</div>
<div id="projectbrief">Jit linker, mapper, obfuscator, and mutator</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacetheo.html">theo</a></li><li class="navelem"><a class="el" href="namespacetheo_1_1decomp.html">decomp</a></li><li class="navelem"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html">symbol_t</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classtheo_1_1decomp_1_1symbol__t-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">theo::decomp::symbol_t Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html" title="symbol_t is an abstraction upon the coff symbol. this allows for easier manipulation of the symbol....">symbol_t</a> is an abstraction upon the coff symbol. this allows for easier manipulation of the symbol. symbols can be different things, sections, functions, and even instructions (when functions are broken down).
<a href="classtheo_1_1decomp_1_1symbol__t.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="symbol_8hpp_source.html">symbol.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa7247dcb735176b6ed9246d035e7a215"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#aa7247dcb735176b6ed9246d035e7a215">symbol_t</a> (coff::image_t *<a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a039830946b5f1a9babe206be4d99f59a">img</a>, std::string <a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a7c6dee036291ded334aa10d89293fc2a">name</a>, std::uintptr_t <a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a79759d343ddb6a62e4149aef92e2d70b">offset</a>, std::vector&lt; std::uint8_t &gt; <a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a746f85f6e5e2ca3d3f668827c57f4bed">data</a>, coff::section_header_t *<a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a75776d2aff3d363e841047260f834a6d">scn</a>={}, coff::symbol_t *<a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a5a265bfb106d9e71587fc2e1c0ad1bc5">sym</a>={}, std::vector&lt; <a class="el" href="classtheo_1_1recomp_1_1reloc__t.html">recomp::reloc_t</a> &gt; <a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a075308b305865bf9c67d803c5e4d447f">relocs</a>={}, <a class="el" href="namespacetheo_1_1decomp.html#af96177687d0ad683c5897d8fa01135f9">sym_type_t</a> dcmp_type={})</td></tr>
<tr class="memdesc:aa7247dcb735176b6ed9246d035e7a215"><td class="mdescLeft">&#160;</td><td class="mdescRight">the explicit constructor of this symbol. <a href="classtheo_1_1decomp_1_1symbol__t.html#aa7247dcb735176b6ed9246d035e7a215">More...</a><br /></td></tr>
<tr class="separator:aa7247dcb735176b6ed9246d035e7a215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c6dee036291ded334aa10d89293fc2a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a7c6dee036291ded334aa10d89293fc2a">name</a> () const</td></tr>
<tr class="memdesc:a7c6dee036291ded334aa10d89293fc2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the name of the symbol. <a href="classtheo_1_1decomp_1_1symbol__t.html#a7c6dee036291ded334aa10d89293fc2a">More...</a><br /></td></tr>
<tr class="separator:a7c6dee036291ded334aa10d89293fc2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79759d343ddb6a62e4149aef92e2d70b"><td class="memItemLeft" align="right" valign="top">std::uintptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a79759d343ddb6a62e4149aef92e2d70b">offset</a> () const</td></tr>
<tr class="memdesc:a79759d343ddb6a62e4149aef92e2d70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the offset into the section where the symbol is located. <a href="classtheo_1_1decomp_1_1symbol__t.html#a79759d343ddb6a62e4149aef92e2d70b">More...</a><br /></td></tr>
<tr class="separator:a79759d343ddb6a62e4149aef92e2d70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae92f3e35fba82a1d16a58ad09b39fb47"><td class="memItemLeft" align="right" valign="top">std::uintptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#ae92f3e35fba82a1d16a58ad09b39fb47">allocated_at</a> () const</td></tr>
<tr class="memdesc:ae92f3e35fba82a1d16a58ad09b39fb47"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the address where the symbol is allocated. <a href="classtheo_1_1decomp_1_1symbol__t.html#ae92f3e35fba82a1d16a58ad09b39fb47">More...</a><br /></td></tr>
<tr class="separator:ae92f3e35fba82a1d16a58ad09b39fb47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae33f1452b01fe80f9c384241b9fe6286"><td class="memItemLeft" align="right" valign="top">std::uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#ae33f1452b01fe80f9c384241b9fe6286">size</a> () const</td></tr>
<tr class="memdesc:ae33f1452b01fe80f9c384241b9fe6286"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the size of the symbol. <a href="classtheo_1_1decomp_1_1symbol__t.html#ae33f1452b01fe80f9c384241b9fe6286">More...</a><br /></td></tr>
<tr class="separator:ae33f1452b01fe80f9c384241b9fe6286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75776d2aff3d363e841047260f834a6d"><td class="memItemLeft" align="right" valign="top">coff::section_header_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a75776d2aff3d363e841047260f834a6d">scn</a> () const</td></tr>
<tr class="memdesc:a75776d2aff3d363e841047260f834a6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the section header of the section in which the symbol is contained. <a href="classtheo_1_1decomp_1_1symbol__t.html#a75776d2aff3d363e841047260f834a6d">More...</a><br /></td></tr>
<tr class="separator:a75776d2aff3d363e841047260f834a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a039830946b5f1a9babe206be4d99f59a"><td class="memItemLeft" align="right" valign="top">coff::image_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a039830946b5f1a9babe206be4d99f59a">img</a> () const</td></tr>
<tr class="memdesc:a039830946b5f1a9babe206be4d99f59a"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the imagine in which the symbol is located inside of. <a href="classtheo_1_1decomp_1_1symbol__t.html#a039830946b5f1a9babe206be4d99f59a">More...</a><br /></td></tr>
<tr class="separator:a039830946b5f1a9babe206be4d99f59a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a746f85f6e5e2ca3d3f668827c57f4bed"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::uint8_t &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a746f85f6e5e2ca3d3f668827c57f4bed">data</a> ()</td></tr>
<tr class="memdesc:a746f85f6e5e2ca3d3f668827c57f4bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vector by reference of bytes containing the data of the symbol. <a href="classtheo_1_1decomp_1_1symbol__t.html#a746f85f6e5e2ca3d3f668827c57f4bed">More...</a><br /></td></tr>
<tr class="separator:a746f85f6e5e2ca3d3f668827c57f4bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a265bfb106d9e71587fc2e1c0ad1bc5"><td class="memItemLeft" align="right" valign="top">coff::symbol_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a5a265bfb106d9e71587fc2e1c0ad1bc5">sym</a> () const</td></tr>
<tr class="memdesc:a5a265bfb106d9e71587fc2e1c0ad1bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a pointer to the coff symbol object. <a href="classtheo_1_1decomp_1_1symbol__t.html#a5a265bfb106d9e71587fc2e1c0ad1bc5">More...</a><br /></td></tr>
<tr class="separator:a5a265bfb106d9e71587fc2e1c0ad1bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16587cddd37cd45d9ec6cd25c229e8d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacetheo_1_1decomp.html#af96177687d0ad683c5897d8fa01135f9">sym_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a16587cddd37cd45d9ec6cd25c229e8d1">type</a> () const</td></tr>
<tr class="memdesc:a16587cddd37cd45d9ec6cd25c229e8d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the type of the symbol. <a href="classtheo_1_1decomp_1_1symbol__t.html#a16587cddd37cd45d9ec6cd25c229e8d1">More...</a><br /></td></tr>
<tr class="separator:a16587cddd37cd45d9ec6cd25c229e8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a075308b305865bf9c67d803c5e4d447f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classtheo_1_1recomp_1_1reloc__t.html">recomp::reloc_t</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a075308b305865bf9c67d803c5e4d447f">relocs</a> ()</td></tr>
<tr class="memdesc:a075308b305865bf9c67d803c5e4d447f"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vector of relocations. <a href="classtheo_1_1decomp_1_1symbol__t.html#a075308b305865bf9c67d803c5e4d447f">More...</a><br /></td></tr>
<tr class="separator:a075308b305865bf9c67d803c5e4d447f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79bec0c7338f2c08739ea6547745cc3b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a79bec0c7338f2c08739ea6547745cc3b">allocated_at</a> (std::uintptr_t allocated_at)</td></tr>
<tr class="memdesc:a79bec0c7338f2c08739ea6547745cc3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the address where the symbol is allocated at. <a href="classtheo_1_1decomp_1_1symbol__t.html#a79bec0c7338f2c08739ea6547745cc3b">More...</a><br /></td></tr>
<tr class="separator:a79bec0c7338f2c08739ea6547745cc3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8695d75670cc4d61d275464e9109ff06"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a8695d75670cc4d61d275464e9109ff06">hash</a> ()</td></tr>
<tr class="memdesc:a8695d75670cc4d61d275464e9109ff06"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the hash of the symbol name. <a href="classtheo_1_1decomp_1_1symbol__t.html#a8695d75670cc4d61d275464e9109ff06">More...</a><br /></td></tr>
<tr class="separator:a8695d75670cc4d61d275464e9109ff06"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a91aacee75f75cf036c050722054133a7"><td class="memItemLeft" align="right" valign="top">static std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a91aacee75f75cf036c050722054133a7">hash</a> (const std::string &amp;<a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a5a265bfb106d9e71587fc2e1c0ad1bc5">sym</a>)</td></tr>
<tr class="memdesc:a91aacee75f75cf036c050722054133a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">generate a hash given the name of the symbol. <a href="classtheo_1_1decomp_1_1symbol__t.html#a91aacee75f75cf036c050722054133a7">More...</a><br /></td></tr>
<tr class="separator:a91aacee75f75cf036c050722054133a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe24e605dc37a5bd9e93368693d955b8"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#abe24e605dc37a5bd9e93368693d955b8">name</a> (const coff::image_t *<a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a039830946b5f1a9babe206be4d99f59a">img</a>, coff::symbol_t *<a class="el" href="classtheo_1_1decomp_1_1symbol__t.html#a5a265bfb106d9e71587fc2e1c0ad1bc5">sym</a>)</td></tr>
<tr class="memdesc:abe24e605dc37a5bd9e93368693d955b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the name of a symbol. this function will create a symbol name if the symbol is opaquely named. <a href="classtheo_1_1decomp_1_1symbol__t.html#abe24e605dc37a5bd9e93368693d955b8">More...</a><br /></td></tr>
<tr class="separator:abe24e605dc37a5bd9e93368693d955b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classtheo_1_1decomp_1_1symbol__t.html" title="symbol_t is an abstraction upon the coff symbol. this allows for easier manipulation of the symbol....">symbol_t</a> is an abstraction upon the coff symbol. this allows for easier manipulation of the symbol. symbols can be different things, sections, functions, and even instructions (when functions are broken down). </p>
<p>this class is used throughout theodosius and is a keystone of the project. ensure you understand how this class works and what it contains.</p>
<p class="definition">Definition at line <a class="el" href="symbol_8hpp_source.html#l00053">53</a> of file <a class="el" href="symbol_8hpp_source.html">symbol.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa7247dcb735176b6ed9246d035e7a215"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7247dcb735176b6ed9246d035e7a215">&#9670;&nbsp;</a></span>symbol_t()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">theo::decomp::symbol_t::symbol_t </td>
<td>(</td>
<td class="paramtype">coff::image_t *&#160;</td>
<td class="paramname"><em>img</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::uintptr_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::uint8_t &gt;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">coff::section_header_t *&#160;</td>
<td class="paramname"><em>scn</em> = <code>{}</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">coff::symbol_t *&#160;</td>
<td class="paramname"><em>sym</em> = <code>{}</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classtheo_1_1recomp_1_1reloc__t.html">recomp::reloc_t</a> &gt;&#160;</td>
<td class="paramname"><em>relocs</em> = <code>{}</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacetheo_1_1decomp.html#af96177687d0ad683c5897d8fa01135f9">sym_type_t</a>&#160;</td>
<td class="paramname"><em>dcmp_type</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>the explicit constructor of this symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">img</td><td>the image in which the symbol is located in.</td></tr>
<tr><td class="paramname">name</td><td>the name of the symbol.</td></tr>
<tr><td class="paramname">offset</td><td>offset into the section where this symbol is located.</td></tr>
<tr><td class="paramname">data</td><td>the data of the symbol. there can be no data.</td></tr>
<tr><td class="paramname">scn</td><td>the section header describing the section which contains the symbol.</td></tr>
<tr><td class="paramname">sym</td><td>the coff symbol itself.</td></tr>
<tr><td class="paramname">relocs</td><td>a vector of relocations this symbol has (if any).</td></tr>
<tr><td class="paramname">dcmp_type</td><td>the type of symbol</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae92f3e35fba82a1d16a58ad09b39fb47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae92f3e35fba82a1d16a58ad09b39fb47">&#9670;&nbsp;</a></span>allocated_at() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::uintptr_t theo::decomp::symbol_t::allocated_at </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>returns the address where the symbol is allocated. </p>
<dl class="section return"><dt>Returns</dt><dd>the address where the symbol is allocated.</dd></dl>
</div>
</div>
<a id="a79bec0c7338f2c08739ea6547745cc3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79bec0c7338f2c08739ea6547745cc3b">&#9670;&nbsp;</a></span>allocated_at() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void theo::decomp::symbol_t::allocated_at </td>
<td>(</td>
<td class="paramtype">std::uintptr_t&#160;</td>
<td class="paramname"><em>allocated_at</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>set the address where the symbol is allocated at. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">allocated_at</td><td>where the symbol is allocated at.</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a746f85f6e5e2ca3d3f668827c57f4bed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a746f85f6e5e2ca3d3f668827c57f4bed">&#9670;&nbsp;</a></span>data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;std::uint8_t&gt;&amp; theo::decomp::symbol_t::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns a vector by reference of bytes containing the data of the symbol. </p>
<dl class="section return"><dt>Returns</dt><dd>a vector by reference of bytes containing the data of the symbol.</dd></dl>
</div>
</div>
<a id="a8695d75670cc4d61d275464e9109ff06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8695d75670cc4d61d275464e9109ff06">&#9670;&nbsp;</a></span>hash() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::size_t theo::decomp::symbol_t::hash </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>gets the hash of the symbol name. </p>
<dl class="section return"><dt>Returns</dt><dd>the hash of the symbol name.</dd></dl>
</div>
</div>
<a id="a91aacee75f75cf036c050722054133a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91aacee75f75cf036c050722054133a7">&#9670;&nbsp;</a></span>hash() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::size_t theo::decomp::symbol_t::hash </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>sym</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>generate a hash given the name of the symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sym</td><td>the symbol name to create a hash from.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the symbol name hash</dd></dl>
</div>
</div>
<a id="a039830946b5f1a9babe206be4d99f59a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a039830946b5f1a9babe206be4d99f59a">&#9670;&nbsp;</a></span>img()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">coff::image_t* theo::decomp::symbol_t::img </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>gets the imagine in which the symbol is located inside of. </p>
<dl class="section return"><dt>Returns</dt><dd>the imagine in which the symbol is located inside of.</dd></dl>
</div>
</div>
<a id="a7c6dee036291ded334aa10d89293fc2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c6dee036291ded334aa10d89293fc2a">&#9670;&nbsp;</a></span>name() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string theo::decomp::symbol_t::name </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>gets the name of the symbol. </p>
<dl class="section return"><dt>Returns</dt><dd>the name of the symbol.</dd></dl>
</div>
</div>
<a id="abe24e605dc37a5bd9e93368693d955b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe24e605dc37a5bd9e93368693d955b8">&#9670;&nbsp;</a></span>name() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::string theo::decomp::symbol_t::name </td>
<td>(</td>
<td class="paramtype">const coff::image_t *&#160;</td>
<td class="paramname"><em>img</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">coff::symbol_t *&#160;</td>
<td class="paramname"><em>sym</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>get the name of a symbol. this function will create a symbol name if the symbol is opaquely named. </p>
<p>for example in c++ if you define something like this:</p>
<p>some_struct_t val = { value_one, value_two };</p>
<p>"val" will be stored in the .data section of the coff file. however the symbol name will be opaque (the name of the symbol will be ".data"). this causes issues with theo since each symbol needs its own unqiue name to generate a unique symbol name hash. for symbols like this, theo will create a name for it with the following format:</p>
<p>.data::section_index!coff_file_timestamp+offset_into_section</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">img</td><td>the coff file containing the symbol.</td></tr>
<tr><td class="paramname">sym</td><td>the coff symbol itself.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the name of the symbol, or a created one.</dd></dl>
</div>
</div>
<a id="a79759d343ddb6a62e4149aef92e2d70b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79759d343ddb6a62e4149aef92e2d70b">&#9670;&nbsp;</a></span>offset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::uintptr_t theo::decomp::symbol_t::offset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>gets the offset into the section where the symbol is located. </p>
<dl class="section return"><dt>Returns</dt><dd>the offset into the section where the symbol is located.</dd></dl>
</div>
</div>
<a id="a075308b305865bf9c67d803c5e4d447f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a075308b305865bf9c67d803c5e4d447f">&#9670;&nbsp;</a></span>relocs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classtheo_1_1recomp_1_1reloc__t.html">recomp::reloc_t</a>&gt;&amp; theo::decomp::symbol_t::relocs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns a vector of relocations. </p>
<dl class="section return"><dt>Returns</dt><dd>a vector of relocations.</dd></dl>
</div>
</div>
<a id="a75776d2aff3d363e841047260f834a6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75776d2aff3d363e841047260f834a6d">&#9670;&nbsp;</a></span>scn()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">coff::section_header_t* theo::decomp::symbol_t::scn </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>gets the section header of the section in which the symbol is contained. </p>
<dl class="section return"><dt>Returns</dt><dd>the section header of the section in which the symbol is contained.</dd></dl>
</div>
</div>
<a id="ae33f1452b01fe80f9c384241b9fe6286"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae33f1452b01fe80f9c384241b9fe6286">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::uint32_t theo::decomp::symbol_t::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>returns the size of the symbol. </p>
<dl class="section return"><dt>Returns</dt><dd>the size of the symbol.</dd></dl>
</div>
</div>
<a id="a5a265bfb106d9e71587fc2e1c0ad1bc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a265bfb106d9e71587fc2e1c0ad1bc5">&#9670;&nbsp;</a></span>sym()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">coff::symbol_t* theo::decomp::symbol_t::sym </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>returns a pointer to the coff symbol object. </p>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the coff symbol object.</dd></dl>
</div>
</div>
<a id="a16587cddd37cd45d9ec6cd25c229e8d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16587cddd37cd45d9ec6cd25c229e8d1">&#9670;&nbsp;</a></span>type()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacetheo_1_1decomp.html#af96177687d0ad683c5897d8fa01135f9">sym_type_t</a> theo::decomp::symbol_t::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>returns the type of the symbol. </p>
<dl class="section return"><dt>Returns</dt><dd>the type of the symbol.</dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/decomp/<a class="el" href="symbol_8hpp_source.html">symbol.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>