edlang/addr2line/index.html
2024-02-13 06:38:44 +00:00

31 lines
9.5 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="This crate provides a cross-platform library and binary for translating addresses into function names, file names and line numbers. Given an address in an executable or an offset in a section of a relocatable object, it uses the debugging information to figure out which file name and line number are associated with it."><title>addr2line - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="addr2line" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../addr2line/index.html">addr2line</a><span class="version">0.21.0</span></h2></div><div class="sidebar-elems"><ul class="block">
<li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../addr2line/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">addr2line</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/addr2line/lib.rs.html#1-1729">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This crate provides a cross-platform library and binary for translating addresses into
function names, file names and line numbers. Given an address in an executable or an
offset in a section of a relocatable object, it uses the debugging information to
figure out which file name and line number are associated with it.</p>
<p>When used as a library, files must first be loaded using the
<a href="https://github.com/gimli-rs/object"><code>object</code></a> crate.
A context can then be created with <a href="./struct.Context.html#method.new"><code>Context::new</code></a>.
The context caches some of the parsed information so that multiple lookups are
efficient.
Location information is obtained with
<a href="./struct.Context.html#method.find_location"><code>Context::find_location</code></a> or
<a href="./struct.Context.html#method.find_location_range"><code>Context::find_location_range</code></a>.
Function information is obtained with
<a href="./struct.Context.html#method.find_frames"><code>Context::find_frames</code></a>, which returns
a frame for each inline function. Each frame contains both name and location.</p>
<p>The crate has an example CLI wrapper around the library which provides some of
the functionality of the <code>addr2line</code> command line tool distributed with <a href="https://www.gnu.org/software/binutils/">GNU
binutils</a>.</p>
<p>Currently this library only provides information from the DWARF debugging information,
which is parsed using <a href="https://github.com/gimli-rs/gimli"><code>gimli</code></a>. The example CLI
wrapper also uses symbol table information provided by the <code>object</code> crate.</p>
</div></details><h2 id="reexports" class="section-header"><a href="#reexports">Re-exports</a></h2><ul class="item-table"><li><div class="item-name"><code>pub extern crate <a class="mod" href="../gimli/index.html" title="mod gimli">gimli</a>;</code></div></li></ul><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Context.html" title="struct addr2line::Context">Context</a></div><div class="desc docblock-short">The state necessary to perform address to line translation.</div></li><li><div class="item-name"><a class="struct" href="struct.Frame.html" title="struct addr2line::Frame">Frame</a></div><div class="desc docblock-short">A function frame.</div></li><li><div class="item-name"><a class="struct" href="struct.FrameIter.html" title="struct addr2line::FrameIter">FrameIter</a></div><div class="desc docblock-short">An iterator over function frames.</div></li><li><div class="item-name"><a class="struct" href="struct.FunctionName.html" title="struct addr2line::FunctionName">FunctionName</a></div><div class="desc docblock-short">A function name.</div></li><li><div class="item-name"><a class="struct" href="struct.Location.html" title="struct addr2line::Location">Location</a></div><div class="desc docblock-short">A source location.</div></li><li><div class="item-name"><a class="struct" href="struct.LocationRangeIter.html" title="struct addr2line::LocationRangeIter">LocationRangeIter</a></div><div class="desc docblock-short">Iterator over <code>Location</code>s in a range of addresses, returned by <code>Context::find_location_range</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.SplitDwarfLoad.html" title="struct addr2line::SplitDwarfLoad">SplitDwarfLoad</a></div><div class="desc docblock-short">This struct contains the information needed to find split DWARF data
and to produce a <code>gimli::Dwarf&lt;R&gt;</code> for it.</div></li></ul><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.LookupResult.html" title="enum addr2line::LookupResult">LookupResult</a></div><div class="desc docblock-short">Operations that consult debug information may require additional files
to be loaded if split DWARF is being used. This enum returns the result
of the operation in the <code>Break</code> variant, or information about the split
DWARF that is required and a continuation to invoke once it is available
in the <code>Continue</code> variant.</div></li></ul><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.LookupContinuation.html" title="trait addr2line::LookupContinuation">LookupContinuation</a></div><div class="desc docblock-short">This trait represents a partially complete operation that can be resumed
once a load of needed split DWARF data is completed or abandoned by the
API consumer.</div></li></ul><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.demangle.html" title="fn addr2line::demangle">demangle</a></div><div class="desc docblock-short">Demangle a symbol name using the demangling scheme for the given language.</div></li><li><div class="item-name"><a class="fn" href="fn.demangle_auto.html" title="fn addr2line::demangle_auto">demangle_auto</a></div><div class="desc docblock-short">Apply best effort demangling of a symbol name.</div></li></ul></section></div></main></body></html>