#dwarf #elf #symbolicate #line-numbers #file-path #atos

无 std 程序+库 addr2line

使用 Rust 编写的跨平台符号化库,使用 gimli

31 个版本 (破坏性更新)

0.24.1 2024 年 7 月 26 日
0.23.0 2024 年 5 月 26 日
0.21.0 2023 年 8 月 13 日
0.20.0 2023 年 4 月 16 日
0.1.0 2016 年 12 月 3 日

#19调试

Download history 1236146/week @ 2024-05-03 1275719/week @ 2024-05-10 1317682/week @ 2024-05-17 1338798/week @ 2024-05-24 1526339/week @ 2024-05-31 1483204/week @ 2024-06-07 1427133/week @ 2024-06-14 1534847/week @ 2024-06-21 1406085/week @ 2024-06-28 1467431/week @ 2024-07-05 1538742/week @ 2024-07-12 1575135/week @ 2024-07-19 1561466/week @ 2024-07-26 1519322/week @ 2024-08-02 1612501/week @ 2024-08-09 1584428/week @ 2024-08-16

6,579,326 每月下载量
用于 32,557 个 Crates(直接使用 33 个)

Apache-2.0 OR MIT

120KB
2.5K SLoC

addr2line

Coverage Status

addr2line 提供了一个跨平台库,用于从具有 DWARF 调试信息的文件中检索每个地址的调试信息。给定一个地址,它可以将与该地址关联的文件名、行号和函数名以及到达该地址的嵌套调用栈返回。

该包有一个命令行包装器,它提供了与 GNU binutils 一起分发的 addr2line 命令行工具的一些功能。

快速入门

如果您想提供自己的文件加载和内存管理,请使用 addr2line::Context 而不是 addr2line::Loader

性能

addr2line 通过缓存解析信息,在速度和内存之间进行优化。尽可能懒惰地解析 DWARF 信息。

该库旨在与 binutils 中的 addr2line、elfutils 中的 eu-addr2line 和 llvm 项目中的 llvm-symbolize 等现有工具的性能相似,并且过去进行了一些基准测试,表明其性能相当。

许可证

根据您的选择,许可协议如下

任选其一。

除非您明确表示,否则根据 Apache-2.0 许可证定义,您有意提交的工作成果将根据上述许可证进行双许可,不附加任何额外条款或条件。

依赖项

约 2-12MB
约 145K SLoC