<!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.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::ElfSymbolTableReader::SymbolInformation Struct 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" />
<link href="crashpad_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">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<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');
/* @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="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1ElfSymbolTableReader.html">ElfSymbolTableReader</a></li><li class="navelem"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html">SymbolInformation</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::ElfSymbolTableReader::SymbolInformation Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Information about a symbol in a module's symbol table.  
 <a href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#details">More...</a></p>

<p><code>#include &quot;snapshot/elf/elf_symbol_table_reader.h&quot;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a6143566430401e7482bee7d5e56516d3"><td class="memItemLeft" align="right" valign="top"><a id="a6143566430401e7482bee7d5e56516d3"></a>
<a class="el" href="namespacecrashpad.html#af2d003bfc8632755c60ab27bd6d1c8ae">VMAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a6143566430401e7482bee7d5e56516d3">address</a></td></tr>
<tr class="memdesc:a6143566430401e7482bee7d5e56516d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The address of the symbol as it exists in the symbol table, not adjusted for any load bias. <br /></td></tr>
<tr class="separator:a6143566430401e7482bee7d5e56516d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5821b4ecde62b0f7f3a79f670d39134e"><td class="memItemLeft" align="right" valign="top"><a id="a5821b4ecde62b0f7f3a79f670d39134e"></a>
<a class="el" href="namespacecrashpad.html#a103690edebf604dcd23d5c03b78fe0be">VMSize</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a5821b4ecde62b0f7f3a79f670d39134e">size</a></td></tr>
<tr class="memdesc:a5821b4ecde62b0f7f3a79f670d39134e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the symbol. <br /></td></tr>
<tr class="separator:a5821b4ecde62b0f7f3a79f670d39134e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bb671892fb27752dbebdc8ffefa4237"><td class="memItemLeft" align="right" valign="top"><a id="a4bb671892fb27752dbebdc8ffefa4237"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a4bb671892fb27752dbebdc8ffefa4237">shndx</a></td></tr>
<tr class="memdesc:a4bb671892fb27752dbebdc8ffefa4237"><td class="mdescLeft">&#160;</td><td class="mdescRight">The section index that the symbol definition is in relation to. <br /></td></tr>
<tr class="separator:a4bb671892fb27752dbebdc8ffefa4237"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fb495353e851cef5f09629af63269a5"><td class="memItemLeft" align="right" valign="top"><a id="a8fb495353e851cef5f09629af63269a5"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a8fb495353e851cef5f09629af63269a5">type</a></td></tr>
<tr class="memdesc:a8fb495353e851cef5f09629af63269a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the type of symbol. Possible values include <code>STT_OBJECT</code>, <code>STT_FUNC</code>, etc. <br /></td></tr>
<tr class="separator:a8fb495353e851cef5f09629af63269a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b5471dd66a2a1aa3a3a87d5ce8b5623"><td class="memItemLeft" align="right" valign="top"><a id="a0b5471dd66a2a1aa3a3a87d5ce8b5623"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a0b5471dd66a2a1aa3a3a87d5ce8b5623">binding</a></td></tr>
<tr class="memdesc:a0b5471dd66a2a1aa3a3a87d5ce8b5623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the default scope at which a symbol takes precedence. Possible values include <code>STB_LOCAL</code>, <code>STB_GLOBAL</code>, <code>STB_WEAK</code>, or OS/processor specific values. <br /></td></tr>
<tr class="separator:a0b5471dd66a2a1aa3a3a87d5ce8b5623"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2925aa133524f1383fef3ae9a9ecfb7b"><td class="memItemLeft" align="right" valign="top"><a id="a2925aa133524f1383fef3ae9a9ecfb7b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1ElfSymbolTableReader_1_1SymbolInformation.html#a2925aa133524f1383fef3ae9a9ecfb7b">visibility</a></td></tr>
<tr class="memdesc:a2925aa133524f1383fef3ae9a9ecfb7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Together with binding, can limit the visibility of a symbol to the module that defines it. Possible values include <code>STV_DEFAULT</code>, <code>STV_INTERNAL</code>, <code>STV_HIDDEN</code>, and <code>STV_PROTECTED</code>. <br /></td></tr>
<tr class="separator:a2925aa133524f1383fef3ae9a9ecfb7b"><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>Information about a symbol in a module's symbol table. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>snapshot/elf/elf_symbol_table_reader.h</li>
</ul>
</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.18
</small></address>
</body>
</html>
