llvm-dwarfutil - 一个用于复制和操作调试信息的工具

概要

llvm-dwarfutil [options] input output

描述

llvm-dwarfutil 是一个用于复制和操作调试信息的工具。

在基本用法中,它将输入的语义副本复制到输出。如果指定任何选项,则输出可能会在此过程中被修改,例如通过删除未使用的调试信息。

如果为输入文件指定 “-”,则从程序的标准输入流读取输入。如果为输出文件指定 “-”,则输出将写入程序的标准输出流。

该工具仍在积极开发中。

命令行选项

--garbage-collection

移除与已丢弃 section 相关的调试信息片段。当链接器执行 section 垃圾回收时,会留下废弃的调试信息。这些废弃的调试信息使用墓碑值引用地址范围。因此,当指定此选项时,该工具会移除标记有墓碑值的调试信息。

该选项默认启用。

--odr-deduplication

删除重复的类型(如果源语言支持“单一定义规则”)。保留第一个类型定义并删除其他定义,可能显著减小输出调试信息的大小。

该选项默认启用。

--help, -h

打印命令行选项摘要。

--no-garbage-collection

禁用 --garbage-collection

--no-odr-deduplication

禁用 --odr-deduplication

--no-separate-debug-file

禁用 --separate-debug-file

--num-threads=<n>, -j

指定用于处理的同时线程的最大数量 (n)。

--separate-debug-file

生成包含输出调试信息的单独文件。使用带有该选项的 llvm-dwarfutil 相当于以下命令集

:program:`llvm-objcopy` --only-keep-debug in-file out-file.debug
:program:`llvm-objcopy` --strip-debug in-file out-file
:program:`llvm-objcopy` --add-gnu-debuglink=out-file.debug out-file
--tombstone=<value>

<value> 可以是以下值之一

  • bfd: 所有地址为零,DWARF v4(或更低版本)地址范围和 exec 为 [1,1]。

  • maxpc: 所有地址为 -1,DWARF v4(或更低版本)地址范围为 -2。

  • universal: bfd 和 maxpc 都是。

  • exec: 与可执行 section 的地址范围匹配。

默认使用值 universal。

--verbose

启用 verbose 日志记录。此选项禁用多线程模式。

--verify

对输出的 DWARF 调试信息运行 DWARF 验证器。

--version

打印此程序的版本。

支持的格式

llvm-dwarfutil 当前支持以下格式

ELF

退出状态

llvm-dwarfutil 如果发生错误,将以非零退出代码退出。否则,它将以代码 0 退出。

BUG

要报告 bug,请访问 <https://github.com/llvm/llvm-project/labels/tools:llvm-dwarfutil/>。