dsymutil - 操作归档的 DWARF 调试符号文件

概要

dsymutil [options] executable

描述

dsymutil 通过使用其符号表中包含的调试符号信息,链接在可执行文件 executable 的目标文件中找到的 DWARF 调试信息。默认情况下,链接的调试信息放置在与可执行文件同名的 .dSYM 捆绑包中。

选项

--accelerator=<accelerator type>

指定所需的加速器表类型。有效选项为 ‘Apple’、‘Dwarf’、‘Default’ 和 ‘None’。

--arch <arch>

仅链接指定 CPU 架构类型的 DWARF 调试信息。架构可以通过名称指定。使用此选项时,如果任何架构无法正确链接,将返回错误。此选项可以多次指定,每次指定一个所需的架构。默认情况下将链接所有 CPU 架构,任何无法正确链接的架构都将导致 dsymutil 返回错误。

--build-variant-suffix <suffix=buildvariant>

指定用于构建可执行文件的构建变体后缀。一个产品的二进制文件可能存在多个变体,每个变体的构建方式略有不同。最常见的构建变体是 ‘debug’ 和 ‘profile’。设置 DYLD_IMAGE_SUFFIX 环境变量将导致 dyld 在运行时加载指定的变体。

--dump-debug-map

以 YAML 格式转储 executable 的 debug-map(包含调试信息的目标文件列表)并退出。不会进行 DWARF 链接。

-D <path>

指定包含要搜索的 dSYM 文件的目录。这用于可合并的库,以便 dsymutil 知道在哪里查找包含这些库中存在的符号的调试信息的 dSYM 文件。

--fat64

在发出通用二进制文件时使用 64 位标头。

--flat, -f

生成扁平的 dSYM 文件。除非使用 -o 选项指定输出文件,否则 .dwarf 扩展名将附加到可执行文件名。

--gen-reproducer

生成一个由输入目标文件组成的 reproducer。是 –reproducer=GenerateOnExit 的别名。

--help, -h

打印此帮助输出。

--keep-function-for-static

即使静态变量原本会被省略,也使其保留外围函数。

--minimize, -z

在创建 dSYM 文件时使用,此选项将禁止发出 .debug_inlines、.debug_pubnames 和 .debug_pubtypes sections,因为 dsymutil 目前有更好的等效项:.apple_names 和 .apple_types。当与 --update 选项结合使用时,此选项将导致删除冗余的加速器表。

--no-object-timestamp

不检查目标文件的时间戳。

--no-odr

不使用 ODR(单一定义规则)来唯一化 C++ 类型。

--no-output

在内存中进行链接,但不发出结果文件。

--no-swiftmodule-timestamp

不检查 swiftmodule 文件的时间戳。

--num-threads <threads>, -j <threads>

指定链接多个架构时要使用的最大并发线程数 (n)。

--object-prefix-map <prefix=remapped>

在处理之前重新映射目标文件路径(但不包括源路径)。将其用于 Clang 对象,其中模块缓存位置已使用 -fdebug-prefix-map 重新映射;以帮助 dsymutil 找到 Clang 模块缓存。

--oso-prepend-path <path>

指定要预先添加到所有调试符号目标文件路径的 path

--out <filename>, -o <filename>

指定放置 dSYM 捆绑包的备用 path。默认 dSYM 捆绑包路径是通过将 .dSYM 附加到可执行文件名来创建的。

-q, --quiet

启用静默模式并限制输出。

--remarks-drop-without-debug

删除没有有效调试位置的 remarks。如果没有此标志,则保留所有 remarks。

--remarks-output-format <format>

指定序列化链接的 remarks 时要使用的格式。

--remarks-prepend-path <path>

指定一个目录,以预先添加外部 remark 文件的路径。

--reproducer <mode>

指定 reproducer 生成模式。有效选项为 ‘GenerateOnExit’、‘GenerateOnCrash’、‘Use’、‘Off’。

--statistics

打印关于每个目标文件对链接的调试信息的贡献的统计信息。这会在链接后打印一个表格,其中包含目标文件名、目标文件中调试信息的大小(以字节为单位)以及对链接的 dSYM 的贡献大小(以字节为单位)。该表按输出大小排序,首先列出贡献最大的目标文件。

-s, --symtab

转储在 executable 或目标文件(s) 中找到的符号表并退出。

-S

输出文本汇编代码而不是二进制 dSYM 伴随文件。

--toolchain <toolchain>

将工具链嵌入到 dSYM 捆绑包的属性列表中。

-u, --update

更新现有的 dSYM 文件以包含最新的加速器表和其他 DWARF 优化。此选项将重建 ‘.apple_names’ 和 ‘.apple_types’ 哈希加速器表。

--use-reproducer <path>

使用给定 reproducer 路径中的目标文件。是 –reproducer=Use 的别名。

--verbose

链接时显示详细信息。

--verify

对链接的 DWARF 调试信息运行 DWARF 验证器。

-v, --version

显示工具的版本。

-y

executable 视为 YAML debug-map 而不是可执行文件。

退出状态

如果 DWARF 调试信息链接成功,dsymutil 返回 0。否则,返回 1。

另请参阅

llvm-dwarfdump(1)