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

..03-May-2022-

benches/H03-May-2022-808680

examples/H03-May-2022-2,8352,616

fixtures/self/H03-May-2022-148126

src/H03-May-2022-45,97034,662

tests/H03-May-2022-591485

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

.cargo_vcs_info.jsonH A D01-Jan-197074 65

.gitignoreH A D01-Jan-197029 54

CHANGELOG.mdH A D01-Jan-197029.7 KiB852574

CONTRIBUTING.mdH A D01-Jan-19703.8 KiB13894

Cargo.lockH A D01-Jan-19709.9 KiB382337

Cargo.tomlH A D01-Jan-19702.6 KiB11694

Cargo.toml.orig-cargoH A D01-Jan-19702.1 KiB7562

LICENSE-APACHEH A D01-Jan-197010.6 KiB202169

LICENSE-MITH A D01-Jan-19701 KiB2622

README.mdH A D01-Jan-19702.9 KiB7951

README.md

1# `gimli`
2
3[![](https://img.shields.io/crates/v/gimli.svg) ![](https://img.shields.io/crates/d/gimli.svg)](https://crates.io/crates/gimli)
4[![](https://docs.rs/gimli/badge.svg)](https://docs.rs/gimli/)
5[![Build Status](https://github.com/gimli-rs/gimli/workflows/Rust/badge.svg)](https://github.com/gimli-rs/gimli/actions)
6[![Coverage Status](https://coveralls.io/repos/github/gimli-rs/gimli/badge.svg?branch=master)](https://coveralls.io/github/gimli-rs/gimli?branch=master)
7
8`gimli` is a blazing fast library for consuming the
9[DWARF debugging format](http://dwarfstd.org/).
10
11* **Zero copy:** everything is just a reference to the original input buffer. No
12  copies of the input data get made.
13
14* **Lazy:** you can iterate compilation units without parsing their
15  contents. Parse only as many debugging information entry (DIE) trees as you
16  iterate over. `gimli` also uses `DW_AT_sibling` references to avoid parsing a
17  DIE's children to find its next sibling, when possible.
18
19* **Cross-platform:** `gimli` makes no assumptions about what kind of object
20  file you're working with. The flipside to that is that it's up to you to
21  provide an ELF loader on Linux or Mach-O loader on macOS.
22
23  * Unsure which object file parser to use? Try the cross-platform
24  [`object`](https://github.com/gimli-rs/object) crate. See the
25  [`examples/`](./examples) directory for usage with `gimli`.
26
27## Install
28
29Add this to your `Cargo.toml`:
30
31```toml
32[dependencies]
33gimli = "0.26.1"
34```
35
36The minimum supported Rust version is 1.42.0.
37
38## Documentation
39
40* [Documentation on docs.rs](https://docs.rs/gimli/)
41
42* Example programs:
43
44  * [A simple `.debug_info` parser](./examples/simple.rs)
45
46  * [A simple `.debug_line` parser](./examples/simple_line.rs)
47
48  * [A `dwarfdump` clone](./examples/dwarfdump.rs)
49
50  * [An `addr2line` clone](https://github.com/gimli-rs/addr2line)
51
52  * [`ddbug`](https://github.com/philipc/ddbug), a utility giving insight into
53    code generation by making debugging information readable.
54
55  * [`dwprod`](https://github.com/fitzgen/dwprod), a tiny utility to list the
56    compilers used to create each compilation unit within a shared library or
57    executable (via `DW_AT_producer`).
58
59  * [`dwarf-validate`](./examples/dwarf-validate.rs), a program to validate the
60    integrity of some DWARF and its references between sections and compilation
61    units.
62
63## License
64
65Licensed under either of
66
67  * Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
68  * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or https://opensource.org/licenses/MIT)
69
70at your option.
71
72## Contribution
73
74See [CONTRIBUTING.md](./CONTRIBUTING.md) for hacking.
75
76Unless you explicitly state otherwise, any contribution intentionally submitted
77for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
78dual licensed as above, without any additional terms or conditions.
79