llvm-dwarfdump - 转储和验证 DWARF 调试信息¶
概要¶
llvm-dwarfdump [选项] [文件名 …]
描述¶
llvm-dwarfdump 解析对象文件、归档文件和.dSYM包中的 DWARF 段,并以人类可读的形式打印其内容。除非指定了某个特定于段的选项或--all
,否则仅打印 .debug_info 段。
如果未指定输入文件,则使用a.out代替。如果使用-作为输入文件,则llvm-dwarfdump 从其标准输入流读取输入。
选项¶
- -a, --all¶
转储所有支持的 DWARF 段。
- --arch=<arch>¶
转储指定 CPU 架构的 DWARF 调试信息。架构可以通过名称或编号来指定。此选项可以多次指定,每次指定一个所需的架构。默认情况下将打印所有 CPU 架构。
- -c, --show-children¶
在使用
--debug-info
的=<offset>参数或诸如--find
或--name
之类的选项选择性地打印时,显示调试信息条目的子项。
- --color¶
在输出中使用颜色。
- -f <name>, --find=<name>¶
在加速器表中搜索与<name>完全匹配的文本,并打印匹配的调试信息条目。当没有加速器表或您要查找的 DIE 的名称未在加速器表中找到时,请尝试使用速度较慢但更完整的
--name
选项。
- -F, --show-form¶
在 DWARF 属性类型之后显示 DWARF 形式类型。
- -h, --help¶
显示此命令的帮助和用法。
- --help-list¶
显示此命令的帮助和用法,但不将选项分组到类别中。
- -n <name>, --name=<name>¶
查找并打印所有名称(DW_AT_name属性)为<name>的调试信息条目。
- --lookup=<address>¶
在调试信息中查找<address>,并打印出文件、函数、块和行表详细信息。
- -o <path>¶
将输出重定向到由<path>指定的文件,其中-是标准输出流。
- -p, --show-parents¶
在使用
--debug-info
的=<offset>参数或诸如--find
或--name
之类的选项选择性地打印时,显示调试信息条目的父项。
- --parent-recurse-depth=<N>¶
在显示调试信息条目父项时,仅显示它们最多到<N>的深度。
- -r <N>, --recurse-depth=<N>¶
在显示调试信息条目时,仅显示子项最多到<N>的深度。
- --show-section-sizes¶
显示所有调试段的大小,以字节为单位。
- --show-sources¶
打印调试信息中提到的所有源文件。尽可能提供绝对路径。
- --summarize-types¶
缩写类型单元条目的描述。
- -x, --regex¶
在使用
--name
搜索时,将任何<name>字符串视为正则表达式。如果还指定了--ignore-case
,则正则表达式将不区分大小写。
- -u, --uuid¶
显示每个架构的 UUID。
- --diff¶
以更利于比较来自两个不同文件的 DWARF 输出的格式转储输出。
- -v, --verbose¶
在转储时显示详细的信息。这有助于调试 DWARF 问题。
- --verify¶
验证 DWARF 信息的结构,包括编译单元链、DIE 关系图、地址范围等。
- --version¶
显示工具的版本。
- --debug-abbrev, --debug-addr, --debug-aranges, --debug-cu-index, --debug-frame [=<offset>], --debug-gnu-pubnames, --debug-gnu-pubtypes, --debug-info [=<offset>], --debug-line [=<offset>], --debug-line-str, --debug-loc [=<offset>], --debug-loclists [=<offset>], --debug-macro, --debug-names, --debug-pubnames, --debug-pubtypes, --debug-ranges, --debug-rnglists, --debug-str, --debug-str-offsets, --debug-tu-index, --debug-types [=<offset>], --eh-frame [=<offset>], --gdb-index, --apple-names, --apple-types, --apple-namespaces, --apple-objc¶
转储指定名称的 DWARF 段。默认情况下只显示 .debug_info 段。某些条目支持添加 =
作为一种方式来提供要转储的相应段内精确条目的可选偏移量。提供偏移量时,只会转储该偏移量处的条目,否则会转储整个段。 --debug-macro
选项同时打印 .debug_macro 和 .debug_macinfo 段。--debug-frame
和--eh-frame
选项是别名,在两个段都存在的情况下,一个命令会输出两者。
- @<FILE>¶
从 <FILE> 读取命令行选项。
统计输出格式¶
--statistics
选项生成单行 JSON 输出,表示已处理调试信息的质量指标。这些指标可用于比较两个编译器之间的变化,特别是用于判断编译器更改对调试信息质量的影响。
输出格式为键值对。第一对包含版本号。以下命名方案用于键
variables ==> 局部变量和参数
local vars ==> 局部变量
params ==> 形参
对于聚合值,使用以下键
sum_of_all_variables(…) ==> 应用于所有变量的总和
#bytes ==> 字节数
#variables - entry values … ==> 变量数量,不包括入口值等。
退出状态¶
如果输入文件成功解析并转储,则 llvm-dwarfdump 返回 0。否则,返回 1。