llvm-readobj - LLVM 对象读取器¶
摘要¶
llvm-readobj [选项] [输入…]
描述¶
llvm-readobj 工具显示有关一个或多个目标文件的信息,这些信息是特定于底层格式的。
如果 input
为 “-
”,则 llvm-readobj 从标准输入读取。否则,它将从指定的 filenames
读取。
与 LLVM-READELF 的区别¶
llvm-readelf 是 llvm-readobj 工具的别名,它具有略微不同的命令行界面和与 GNU 兼容的输出。以下是 llvm-readelf 和 llvm-readobj 之间差异的列表
llvm-readelf 默认使用 GNU 作为
--elf-output-style
选项。 llvm-readobj 使用 LLVM。llvm-readelf 允许使用单字母分组标志(例如,
llvm-readelf -SW
与llvm-readelf -S -W
相同)。llvm-readobj 不允许分组。llvm-readelf 提供
-s
作为--symbols
的别名,以实现与 GNU readelf 的兼容性,而在 llvm-readobj 中,它是--section-headers
的别名。llvm-readobj 提供
-t
作为--symbols
的别名。 llvm-readelf 没有。llvm-readobj 提供
--sr
、--sd
、--st
和--dt
作为--section-relocations
、--section-data
、--section-symbols
和--dyn-symbols
的别名。 llvm-readelf 没有提供这些别名,以避免与分组标志冲突。
通用和多格式选项¶
这些选项适用于多种文件格式,或者与文件格式无关。
- --all¶
等效于指定与文件格式相关的所有主要显示选项。
- --addrsig¶
显示地址有效性表。
- --decompress, -z¶
与
-x
或-p
一起使用时,转储解压缩的节内容。如果节未压缩,则按原样显示。
- --demangle, -C¶
在输出中显示反解的符号名称。此选项仅适用于 ELF 和 XCOFF 文件格式。
- --file-header, -h¶
显示文件头。
- --headers, -e¶
等效于设置:
--file-header
、--program-headers
和--sections
。
- --help¶
显示命令行选项的摘要。
- --hex-dump=<section[,section,...]>, -x¶
以十六进制字节的形式显示指定的节。
section
可以是节索引或节名称。- --memtag¶
显示有关二进制文件中存在的内存标记的信息。这包括各种特定于 memtag 的动态条目、解码的全局描述符节和解码的特定于 Android 的 ELF 注记。
- --needed-libs¶
显示所需的库。
- --no-demangle¶
不在输出中反解符号名称。此选项仅适用于 ELF 和 XCOFF 文件格式。默认情况下启用此选项。
- --relocations, --relocs, -r¶
显示文件中的重定位条目。
- --sections, --section-headers, -S¶
显示所有节。
- --section-data, --sd¶
与
--sections
一起使用时,显示每个显示节的节数据。此选项对 GNU 样式输出无效。
- --section-relocations, --sr¶
与
--sections
一起使用时,显示每个显示节的重定位。此选项对 GNU 样式输出无效。
- --section-symbols, --st¶
与
--sections
一起使用时,显示每个显示节的符号。此选项对 GNU 样式输出无效。
- --sort-symbols=<sort_key[,sort_key]>¶
指定在显示 symtab 之前对符号进行排序的键。
sort_key
的有效值为name
和type
。
- --stackmap¶
显示 stackmap 节的内容。
- --string-dump=<section[,section,...]>, -p¶
将指定的节显示为字符串列表。
section
可以是节索引或节名称。
- --string-table¶
显示字符串表的内容。
- --symbols, --syms, -s¶
显示符号表。
- --unwind, -u¶
显示展开信息。
- --version¶
显示llvm-readobj可执行文件的版本。
- @<FILE>¶
从响应文件<FILE>读取命令行选项。
ELF 特定选项¶
以下选项仅在ELF文件格式中实现。
- --arch-specific, -A¶
显示特定于体系结构的信息,例如ARM上的ARM属性部分。
- --bb-addr-map¶
显示基本块地址映射部分的内容,这些部分包含每个函数的地址以及每个基本块的相对偏移量。
当存在pgo分析映射时,所有分析都将以其原始值打印。
- --pretty-pgo-analysis-map¶
当基本块地址映射部分中存在pgo分析映射时,具有特殊格式(即BlockFrequency、BranchProbability等)的分析将使用与其相应的分析传递相同的格式打印。
需要
--bb-addr-map
才能生效。
- --dependent-libraries¶
显示依赖库部分。
- --dyn-relocations¶
显示动态重定位条目。
- --dyn-symbols, --dyn-syms, --dt¶
显示动态符号表。
- --dynamic-table, --dynamic, -d¶
显示动态表。
- --cg-profile¶
显示调用图配置文件部分。
- --histogram, -I¶
显示动态符号哈希表的桶列表直方图。
- --elf-linker-options¶
显示链接器选项部分。
- --elf-output-style=<value>¶
以指定的样式格式化ELF信息。有效选项为
LLVM
、GNU
和JSON
。LLVM
输出(默认值)是扩展的结构化格式。GNU
输出模仿等效的GNU readelf输出。JSON
是旨在供机器使用的JSON格式输出。
- --section-groups, -g¶
显示节组。
- --gnu-hash-table¶
显示动态符号的GNU哈希表。
- --hash-symbols¶
显示包含动态符号数据的扩展哈希表。
- --hash-table¶
显示动态符号的哈希表。
- --memtag¶
显示有关二进制文件中存在的内存标记的信息。这包括各种动态条目、解码的全局描述符部分和解码的Android特定ELF注释。
- --notes, -n¶
显示所有注释。
- --pretty-print¶
与
--elf-output-style
一起使用时,JSON输出将以更易读的格式进行格式化。
- --program-headers, --segments, -l¶
显示程序头。
- --section-mapping¶
显示节到段的映射。
- --stack-sizes¶
显示堆栈大小部分的内容,即函数名称与其堆栈帧大小的配对。目前仅在GNU样式输出中实现。
- --version-info, -V¶
显示版本节。
MACH-O 特定选项¶
以下选项仅在Mach-O文件格式中实现。
- --macho-data-in-code¶
显示代码中的数据命令。
- --macho-dsymtab¶
显示Dsymtab命令。
- --macho-indirect-symbols¶
显示间接符号。
- --macho-linker-options¶
显示Mach-O特定的链接器选项。
- --macho-segment¶
显示段命令。
- --macho-version-min¶
显示版本最小命令。
PE/COFF 特定选项¶
以下选项仅在PE/COFF文件格式中实现。
- --codeview¶
显示CodeView调试信息。
- --codeview-ghash¶
启用CodeView类型流重复数据删除的全局哈希。
- --codeview-merged-types¶
显示合并的CodeView类型流。
- --codeview-subsection-bytes¶
转储CodeView调试节和记录的原始内容。
- --coff-basereloc¶
显示.reloc节。
- --coff-debug-directory¶
显示调试目录。
- --coff-tls-directory¶
显示 TLS 目录。
- --coff-directives¶
显示 .drectve 段。
- --coff-exports¶
显示导出表。
- --coff-imports¶
显示导入表。
- --coff-load-config¶
显示加载配置。
- --coff-resources¶
显示 .rsrc 段。
XCOFF 特定选项¶
以下选项仅在 XCOFF 文件格式中实现。
- --auxiliary-header¶
显示 XCOFF 辅助头。
- --exception-section¶
显示 XCOFF 异常段条目。
- --loader-section-header¶
显示 XCOFF 加载器段头。
- --loader-section-symbols¶
显示加载器段的符号表。
- --loader-section-relocations¶
显示加载器段的重定位条目。
退出状态¶
llvm-readobj 在正常操作下返回 0。如果发生任何错误,则返回非零退出代码。