llvm-dwarfdump命令详解

概要

llvm-dwarfdump [options] [filename …]

描述

llvm-dwarfdump llvm-dwarfdump解析目标文件,存档和.dSYM包中的DWARF节,并以人类可读的形式打印其内容。除非指定了--all或者特定于部分的选项之一,否则仅打印.debug_info部分。

选项

  • -a, –all: 反汇编所有支持的DWARF部分

  • –arch=<arch>:转储指定CPU体系结构的DWARF调试信息。架构可以通过名称或编号指定。可以多次指定此选项,每个所需的体系结构一次。默认情况下将打印所有CPU架构

  • -c, –show-children:使用–debug-info,–find和–name选项时,显示调试信息条目的孩子

  • -f <name>, –find=

    在加速器表中搜索确切的文本并打印匹配的调试信息条目。如果在加速器表中找不到加速器表或您要查找的DIE的名称,请尝试使用较慢但更完整的–name选项。

  • -F, –show-form:在DWARF属性类型之后显示DWARF表单类型。

  • -h, –help: 显示此命令的帮助和用法。

  • -i, –ignore-case:在按名称或正则表达式搜索条目时忽略大小写区别。

  • -n <pattern>, –name=<pattern>:
    查找并打印名称(DW_AT_name属性)与中的确切文本匹配的所有调试信息条目。使用该–regex选项可使成为正则表达式,以实现更灵活的模式匹配。

  • –lookup=<address>:在调试信息中查找

    并打印出文件,函数,块和行表详细信息。

  • -o <path>, –out-file=<path>:将输出重定向到指定的文件

  • -p,-show-parents:使用 –debug-info,–find和 –name选项时显示调试信息条目的父对象。

  • -r <n>, –recurse-depth=<n>:转储调试信息条目时,只递归到最大深度

  • –statistics:收集调试信息质量指标并将结果打印为机器可读的单行JSON输出。

  • -x,–regex:在搜索时将任何<pattern>字符串视为正则表达式,而不仅仅是完全匹配字符串。

  • -u,–uuid: 显示每个体系结构的UUID

  • –diff:将输出转换为更友好的格式,以便比较来自两个不同文件的DWARF输出

  • -v, –verbose:转储时显示详细信息。这有助于调试DWARF问题

  • –verify:通过验证编译单元链,DIE关系图,地址范围等来验证DWARF信息的结构

  • –version :显示版本号

  • –debug-abbrev, –debug-aranges, –debug-cu-index, –debug-frame [=], –debug-gnu-pubnames, –debug-gnu-pubtypes, –debug-info [=], –debug-line [=], –debug-loc [=], –debug-macro, –debug-pubnames, –debug-pubtypes, –debug-ranges, –debug-str, –debug-str-offsets, –debug-tu-index, –debug-types, –eh-frame, –gdb-index, –apple-names, –apple-types, –apple-namespaces, –apple-objc

    按名称转储指定的DWARF部分。默认情况下仅显示 .debug_info部分。某些条目支持添加= 作为在相应部分中提供转储的准确条目的可选偏移量的方法。提供偏移时,只会转储该偏移处的条目,否则将转储整个部分。也可以使用–show-children适用的选项转储特定偏移的项目的子项 。

退出

如果输入文件已成功解析并转储,则llvm-dwarfdump返回0。否则,它返回1。

参见

dsymutil