2019-09-06 15:57:44 -07:00

43 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `symbols` mod in crate `goblin`."><meta name="keywords" content="rust, rustlang, rust-lang, symbols"><title>goblin::mach::symbols - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../goblin/index.html'><div class='logo-container'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module symbols</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../../index.html'>goblin</a>::<wbr><a href='../index.html'>mach</a></p><script>window.sidebarCurrent = {name: 'symbols', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/goblin/mach/symbols.rs.html#1-474' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>goblin</a>::<wbr><a href='../index.html'>mach</a>::<wbr><a class="mod" href=''>symbols</a></span></h1><div class='docblock'><p>&quot;Nlist&quot; style symbols in this binary - beware, like most symbol tables in most binary formats, they are strippable, and should not be relied upon, see the imports and exports modules for something more permanent.</p>
<p>Symbols are essentially a type, offset, and the symbol name</p>
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.Nlist.html" title='goblin::mach::symbols::Nlist struct'>Nlist</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.Nlist32.html" title='goblin::mach::symbols::Nlist32 struct'>Nlist32</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.Nlist64.html" title='goblin::mach::symbols::Nlist64 struct'>Nlist64</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.SymbolIterator.html" title='goblin::mach::symbols::SymbolIterator struct'>SymbolIterator</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.Symbols.html" title='goblin::mach::symbols::Symbols struct'>Symbols</a></td><td class='docblock-short'><p>A zero-copy &quot;nlist&quot; style symbol table (&quot;stab&quot;), including the string table</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SymbolsCtx.html" title='goblin::mach::symbols::SymbolsCtx struct'>SymbolsCtx</a></td><td class='docblock-short'></td></tr></table><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table><tr class='module-item'><td><a class="constant" href="constant.MAX_SECT.html" title='goblin::mach::symbols::MAX_SECT constant'>MAX_SECT</a></td><td class='docblock-short'><p>1 thru 255 inclusive</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.NLIST_TYPE_GLOBAL.html" title='goblin::mach::symbols::NLIST_TYPE_GLOBAL constant'>NLIST_TYPE_GLOBAL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.NLIST_TYPE_LOCAL.html" title='goblin::mach::symbols::NLIST_TYPE_LOCAL constant'>NLIST_TYPE_LOCAL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.NLIST_TYPE_MASK.html" title='goblin::mach::symbols::NLIST_TYPE_MASK constant'>NLIST_TYPE_MASK</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.NO_SECT.html" title='goblin::mach::symbols::NO_SECT constant'>NO_SECT</a></td><td class='docblock-short'><p>symbol is not in any section</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_ABS.html" title='goblin::mach::symbols::N_ABS constant'>N_ABS</a></td><td class='docblock-short'><p>absolute, n_sect == NO_SECT</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_AST.html" title='goblin::mach::symbols::N_AST constant'>N_AST</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_BCOMM.html" title='goblin::mach::symbols::N_BCOMM constant'>N_BCOMM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_BINCL.html" title='goblin::mach::symbols::N_BINCL constant'>N_BINCL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_BNSYM.html" title='goblin::mach::symbols::N_BNSYM constant'>N_BNSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_DESC_DISCARDED.html" title='goblin::mach::symbols::N_DESC_DISCARDED constant'>N_DESC_DISCARDED</a></td><td class='docblock-short'><p>Sometimes used by the dynamic linker at runtime in a fully linked image. Do not
set this bit in a fully linked image.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_ECOML.html" title='goblin::mach::symbols::N_ECOML constant'>N_ECOML</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_ECOMM.html" title='goblin::mach::symbols::N_ECOMM constant'>N_ECOMM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_EINCL.html" title='goblin::mach::symbols::N_EINCL constant'>N_EINCL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_ENSYM.html" title='goblin::mach::symbols::N_ENSYM constant'>N_ENSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_ENTRY.html" title='goblin::mach::symbols::N_ENTRY constant'>N_ENTRY</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_EXCL.html" title='goblin::mach::symbols::N_EXCL constant'>N_EXCL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_EXT.html" title='goblin::mach::symbols::N_EXT constant'>N_EXT</a></td><td class='docblock-short'><p>external symbol bit, set for external symbols</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_FNAME.html" title='goblin::mach::symbols::N_FNAME constant'>N_FNAME</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_FUN.html" title='goblin::mach::symbols::N_FUN constant'>N_FUN</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_GSYM.html" title='goblin::mach::symbols::N_GSYM constant'>N_GSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_INDR.html" title='goblin::mach::symbols::N_INDR constant'>N_INDR</a></td><td class='docblock-short'><p>indirect</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_LBRAC.html" title='goblin::mach::symbols::N_LBRAC constant'>N_LBRAC</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_LCSYM.html" title='goblin::mach::symbols::N_LCSYM constant'>N_LCSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_LENG.html" title='goblin::mach::symbols::N_LENG constant'>N_LENG</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_LSYM.html" title='goblin::mach::symbols::N_LSYM constant'>N_LSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_NO_DEAD_STRIP.html" title='goblin::mach::symbols::N_NO_DEAD_STRIP constant'>N_NO_DEAD_STRIP</a></td><td class='docblock-short'><p>When set in a relocatable object file (file type MH_OBJECT) on a defined symbol,
indicates to the static linker to never dead-strip the symbol.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_OLEVEL.html" title='goblin::mach::symbols::N_OLEVEL constant'>N_OLEVEL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_OPT.html" title='goblin::mach::symbols::N_OPT constant'>N_OPT</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_OSO.html" title='goblin::mach::symbols::N_OSO constant'>N_OSO</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_PARAMS.html" title='goblin::mach::symbols::N_PARAMS constant'>N_PARAMS</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_PBUD.html" title='goblin::mach::symbols::N_PBUD constant'>N_PBUD</a></td><td class='docblock-short'><p>prebound undefined (defined in a dylib)</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_PC.html" title='goblin::mach::symbols::N_PC constant'>N_PC</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_PEXT.html" title='goblin::mach::symbols::N_PEXT constant'>N_PEXT</a></td><td class='docblock-short'><p>private external symbol bit</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_PSYM.html" title='goblin::mach::symbols::N_PSYM constant'>N_PSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_RBRAC.html" title='goblin::mach::symbols::N_RBRAC constant'>N_RBRAC</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_RSYM.html" title='goblin::mach::symbols::N_RSYM constant'>N_RSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_SECT.html" title='goblin::mach::symbols::N_SECT constant'>N_SECT</a></td><td class='docblock-short'><p>defined in section number n_sect</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_SLINE.html" title='goblin::mach::symbols::N_SLINE constant'>N_SLINE</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_SO.html" title='goblin::mach::symbols::N_SO constant'>N_SO</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_SOL.html" title='goblin::mach::symbols::N_SOL constant'>N_SOL</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_SSYM.html" title='goblin::mach::symbols::N_SSYM constant'>N_SSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_STAB.html" title='goblin::mach::symbols::N_STAB constant'>N_STAB</a></td><td class='docblock-short'><p>if any of these bits set, a symbolic debugging entry</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_STSYM.html" title='goblin::mach::symbols::N_STSYM constant'>N_STSYM</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_TYPE.html" title='goblin::mach::symbols::N_TYPE constant'>N_TYPE</a></td><td class='docblock-short'><p>mask for the type bits</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_UNDF.html" title='goblin::mach::symbols::N_UNDF constant'>N_UNDF</a></td><td class='docblock-short'><p>undefined, n_sect == NO_SECT</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_VERSION.html" title='goblin::mach::symbols::N_VERSION constant'>N_VERSION</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.N_WEAK_DEF.html" title='goblin::mach::symbols::N_WEAK_DEF constant'>N_WEAK_DEF</a></td><td class='docblock-short'><p>Indicates that this symbol is a weak definition. If the static linker or the
dynamic linker finds another (non-weak) definition for this symbol, the weak
definition is ignored. Only symbols in a coalesced section can be marked as a
weak definition.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.N_WEAK_REF.html" title='goblin::mach::symbols::N_WEAK_REF constant'>N_WEAK_REF</a></td><td class='docblock-short'><p>Indicates that this undefined symbol is a weak reference. If the dynamic linker
cannot find a definition for this symbol, it sets the address of this symbol to 0.
The static linker sets this symbol given the appropriate weak-linking flags.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCED_DYNAMICALLY.html" title='goblin::mach::symbols::REFERENCED_DYNAMICALLY constant'>REFERENCED_DYNAMICALLY</a></td><td class='docblock-short'><p>Must be set for any defined symbol that is referenced by dynamic-loader APIs
(such as dlsym and NSLookupSymbolInImage) and not ordinary undefined symbol
references. The <code>strip</code> tool uses this bit to avoid removing symbols that must
exist: If the symbol has this bit set, <code>strip</code> does not strip it.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_FLAG_DEFINED.html" title='goblin::mach::symbols::REFERENCE_FLAG_DEFINED constant'>REFERENCE_FLAG_DEFINED</a></td><td class='docblock-short'><p>This symbol is defined in this module.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_FLAG_PRIVATE_DEFINED.html" title='goblin::mach::symbols::REFERENCE_FLAG_PRIVATE_DEFINED constant'>REFERENCE_FLAG_PRIVATE_DEFINED</a></td><td class='docblock-short'><p>This symbol is defined in this module and is visible only to modules within this
shared library.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY.html" title='goblin::mach::symbols::REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY constant'>REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY</a></td><td class='docblock-short'><p>This symbol is defined in another module in this file, is a lazy (function) symbol,
and is visible only to modules within this shared library.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY.html" title='goblin::mach::symbols::REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY constant'>REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY</a></td><td class='docblock-short'><p>This symbol is defined in another module in this file, is a non-lazy (data) symbol,
and is visible only to modules within this shared library.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_FLAG_UNDEFINED_LAZY.html" title='goblin::mach::symbols::REFERENCE_FLAG_UNDEFINED_LAZY constant'>REFERENCE_FLAG_UNDEFINED_LAZY</a></td><td class='docblock-short'><p>This symbol is a reference to an external lazy symbol—that is, to a function call.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_FLAG_UNDEFINED_NON_LAZY.html" title='goblin::mach::symbols::REFERENCE_FLAG_UNDEFINED_NON_LAZY constant'>REFERENCE_FLAG_UNDEFINED_NON_LAZY</a></td><td class='docblock-short'><p>This symbol is a reference to an external non-lazy (data) symbol.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REFERENCE_TYPE.html" title='goblin::mach::symbols::REFERENCE_TYPE constant'>REFERENCE_TYPE</a></td><td class='docblock-short'><p>Mask for reference flags of <code>n_desc</code> field.</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.SIZEOF_NLIST_32.html" title='goblin::mach::symbols::SIZEOF_NLIST_32 constant'>SIZEOF_NLIST_32</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.SIZEOF_NLIST_64.html" title='goblin::mach::symbols::SIZEOF_NLIST_64 constant'>SIZEOF_NLIST_64</a></td><td class='docblock-short'></td></tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table><tr class='module-item'><td><a class="fn" href="fn.n_type_to_str.html" title='goblin::mach::symbols::n_type_to_str fn'>n_type_to_str</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "goblin";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>