Expand description
addr2line
provides a cross-platform library for retrieving per-address debug information
from files with DWARF debug information. Given an address, it can return the file name,
line number, and function name associated with that address, as well as the inline call
stack leading to that address.
At the lowest level, the library uses a Context
to cache parsed information so that
multiple lookups are efficient. To create a Context
, you first need to open and parse the
file using an object file parser such as object
,
create a gimli::Dwarf
, and finally call Context::from_dwarf
.
Location information is obtained with Context::find_location
or
Context::find_location_range
. Function information is obtained with
Context::find_frames
, which returns a frame for each inline function. Each frame
contains both name and location.
The library also provides a Loader
which internally memory maps the files,
uses the object
crate to do the parsing, and creates a Context
.
The Context
is not exposed, but the Loader
provides the same functionality
via Loader::find_location
, Loader::find_location_range
, and
Loader::find_frames
. The Loader
also provides Loader::find_symbol
to use the symbol table instead of DWARF debugging information.
The Loader
will load Mach-O dSYM files and split DWARF files as needed.
The crate has a CLI wrapper around the library which provides some of
the functionality of the addr2line
command line tool distributed with
GNU binutils.
Re-exports§
pub extern crate fallible_iterator;
pub extern crate gimli;
Structs§
- Context
- The state necessary to perform address to line translation.
- Frame
- A function frame.
- Frame
Iter - An iterator over function frames.
- Function
Name - A function name.
- Loader
- A loader for the DWARF data required for a
Context
. - Location
- A source location.
- Location
Range Iter - Iterator over
Location
s in a range of addresses, returned byContext::find_location_range
. - Split
Dwarf Load - This struct contains the information needed to find split DWARF data
and to produce a
gimli::Dwarf<R>
for it.
Enums§
- Lookup
Result - 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
Output
variant, or information about the split DWARF that is required and a continuation to invoke once it is available in theLoad
variant.
Traits§
- Lookup
Continuation - 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.
Functions§
- demangle
- Demangle a symbol name using the demangling scheme for the given language.
- demangle_
auto - Apply ‘best effort’ demangling of a symbol name.
Type Aliases§
- Loader
Reader - The type used by
Loader
for reading DWARF data.