• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..20-Jan-2022-

examples/H20-Jan-2022-300267

src/H20-Jan-2022-1,7441,406

tests/H20-Jan-2022-357296

.cargo-checksum.jsonH A D03-May-202289 11

CHANGELOG.mdH A D20-Jan-20227.2 KiB261157

Cargo.lockH A D20-Jan-202211.2 KiB431379

Cargo.tomlH A D20-Jan-20222.7 KiB12198

LICENSE-APACHEH A D20-Jan-202210.6 KiB202169

LICENSE-MITH A D20-Jan-20221 KiB2622

README.mdH A D20-Jan-20222.5 KiB4936

bench.plot.rH A D20-Jan-20221,000 2420

benchmark.shH A D20-Jan-20223 KiB11390

coverage.shH A D20-Jan-2022177 62

README.md

1# addr2line
2
3[![](https://img.shields.io/crates/v/addr2line.svg)](https://crates.io/crates/addr2line)
4[![](https://img.shields.io/docsrs/addr2line.svg)](https://docs.rs/addr2line)
5[![Coverage Status](https://coveralls.io/repos/github/gimli-rs/addr2line/badge.svg?branch=master)](https://coveralls.io/github/gimli-rs/addr2line?branch=master)
6
7A cross-platform library for retrieving per-address debug information
8from files with DWARF debug information.
9
10`addr2line` uses [`gimli`](https://github.com/gimli-rs/gimli) to parse
11the debug information, and exposes an interface for finding
12the source file, line number, and wrapping function for instruction
13addresses within the target program. These lookups can either be
14performed programmatically through `Context::find_location` and
15`Context::find_frames`, or via the included example binary,
16`addr2line` (named and modelled after the equivalent utility from
17[GNU binutils](https://sourceware.org/binutils/docs/binutils/addr2line.html)).
18
19# Quickstart
20 - Add the [`addr2line` crate](https://crates.io/crates/addr2line) to your `Cargo.toml`
21 - Load the file and parse it with [`addr2line::object::read::File::parse`](https://docs.rs/object/*/object/read/struct.File.html#method.parse)
22 - Pass the parsed file to [`addr2line::Context::new` ](https://docs.rs/addr2line/*/addr2line/struct.Context.html#method.new)
23 - Use [`addr2line::Context::find_location`](https://docs.rs/addr2line/*/addr2line/struct.Context.html#method.find_location)
24   or [`addr2line::Context::find_frames`](https://docs.rs/addr2line/*/addr2line/struct.Context.html#method.find_frames)
25   to look up debug information for an address
26
27# Performance
28
29`addr2line` optimizes for speed over memory by caching parsed information.
30The DWARF information is parsed lazily where possible.
31
32The library aims to perform similarly to equivalent existing tools such
33as `addr2line` from binutils, `eu-addr2line` from elfutils, and
34`llvm-symbolize` from the llvm project, and in the past some benchmarking
35was done that indicates a comparable performance.
36
37## License
38
39Licensed under either of
40
41  * Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
42  * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or https://opensource.org/licenses/MIT)
43
44at your option.
45
46Unless you explicitly state otherwise, any contribution intentionally submitted
47for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
48dual licensed as above, without any additional terms or conditions.
49