Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 20-Jan-2022 | - | ||||
benches/ | H | 20-Jan-2022 | - | 808 | 680 | |
examples/ | H | 20-Jan-2022 | - | 2,685 | 2,476 | |
fixtures/self/ | H | 20-Jan-2022 | - | 148 | 126 | |
src/ | H | 20-Jan-2022 | - | 44,008 | 33,112 | |
tests/ | H | 20-Jan-2022 | - | 591 | 485 | |
.cargo-checksum.json | H A D | 03-May-2022 | 89 | 1 | 1 | |
CHANGELOG.md | H A D | 20-Jan-2022 | 27.5 KiB | 784 | 531 | |
CONTRIBUTING.md | H A D | 20-Jan-2022 | 3.8 KiB | 138 | 94 | |
Cargo.lock | H A D | 20-Jan-2022 | 9.9 KiB | 382 | 337 | |
Cargo.toml | H A D | 20-Jan-2022 | 2.6 KiB | 115 | 93 | |
LICENSE-APACHE | H A D | 20-Jan-2022 | 10.6 KiB | 202 | 169 | |
LICENSE-MIT | H A D | 20-Jan-2022 | 1 KiB | 26 | 22 | |
README.md | H A D | 20-Jan-2022 | 2.9 KiB | 79 | 51 |
README.md
1# `gimli` 2 3[![](http://meritbadge.herokuapp.com/gimli) ![](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.25.0" 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 http://www.apache.org/licenses/LICENSE-2.0) 68 * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or http://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