| # llvm-readobj - LLVM Object Reader | |
| :::{program} llvm-readobj | |
| ::: | |
| ## SYNOPSIS | |
| {program}`llvm-readobj` \[*options*\] \[*input...*\] | |
| ## DESCRIPTION | |
| The {program}`llvm-readobj` tool displays low-level format-specific information | |
| about one or more object files. | |
| If `input` is "`-`", {program}`llvm-readobj` reads from standard | |
| input. Otherwise, it will read from the specified `filenames`. | |
| ## DIFFERENCES TO LLVM-READELF | |
| {program}`llvm-readelf` is an alias for the {manpage}`llvm-readobj` tool with a | |
| slightly different command-line interface and output that is GNU compatible. | |
| Following is a list of differences between {program}`llvm-readelf` and | |
| {program}`llvm-readobj`: | |
| - {program}`llvm-readelf` uses `GNU` for the {option}`--elf-output-style` option | |
| by default. {program}`llvm-readobj` uses `LLVM`. | |
| - {program}`llvm-readelf` allows single-letter grouped flags (e.g. | |
| `llvm-readelf -SW` is the same as `llvm-readelf -S -W`). | |
| {program}`llvm-readobj` does not allow grouping. | |
| - {program}`llvm-readelf` provides {option}`-s` as an alias for | |
| {option}`--symbols`, for GNU {program}`readelf` compatibility, whereas it is | |
| an alias for {option}`--section-headers` in {program}`llvm-readobj`. | |
| - {program}`llvm-readobj` provides `-t` as an alias for {option}`--symbols`. | |
| {program}`llvm-readelf` does not. | |
| - {program}`llvm-readobj` provides `--sr`, `--sd`, `--st` and `--dt` as | |
| aliases for {option}`--section-relocations`, {option}`--section-data`, | |
| {option}`--section-symbols` and {option}`--dyn-symbols` respectively. | |
| {program}`llvm-readelf` does not provide these aliases, to avoid conflicting | |
| with grouped flags. | |
| ## GENERAL AND MULTI-FORMAT OPTIONS | |
| These options are applicable to more than one file format, or are unrelated to | |
| file formats. | |
| :::{option} --addrsig | |
| Display the address-significance table. | |
| ::: | |
| :::{option} --all | |
| Equivalent to specifying all the main display options relevant to the file | |
| format. | |
| ::: | |
| :::{option} --decompress, -z | |
| Dump decompressed section content when used with `-x` or `-p`. | |
| If the section(s) are not compressed, they are displayed as is. | |
| ::: | |
| :::{option} --demangle, -C | |
| Display demangled symbol names in the output. This option is only for ELF and | |
| XCOFF file formats. | |
| ::: | |
| :::{option} --expand-relocs | |
| When used with {option}`--relocs`, display each relocation in an expanded | |
| multi-line format. | |
| ::: | |
| :::{option} --file-header, -h | |
| Display file headers. | |
| ::: | |
| :::{option} --headers, -e | |
| Equivalent to setting: {option}`--file-header`, {option}`--program-headers`, | |
| and {option}`--sections`. | |
| ::: | |
| :::{option} --help | |
| Display a summary of command line options. | |
| ::: | |
| :::{option} --hex-dump=<section[,section,...]>, -x | |
| Display the specified section(s) as hexadecimal bytes. `section` may be a | |
| section index or section name. | |
| ::: | |
| :::{option} --needed-libs | |
| Display the needed libraries. | |
| ::: | |
| :::{option} --no-demangle | |
| Do not demangle symbol names in the output. This option is only for ELF and | |
| XCOFF file formats. The option is enabled by default. | |
| ::: | |
| :::{option} --offloading | |
| Display list of HIP offload bundles. | |
| ::: | |
| :::{option} --relocations, --relocs, -r | |
| Display the relocation entries in the file. | |
| ::: | |
| :::{option} --section-data, --sd | |
| When used with {option}`--sections`, display section data for each section | |
| shown. This option has no effect for GNU style output. | |
| ::: | |
| :::{option} --section-relocations, --sr | |
| When used with {option}`--sections`, display relocations for each section | |
| shown. This option has no effect for GNU style output. | |
| ::: | |
| :::{option} --sections, --section-headers, -S | |
| Display all sections. | |
| ::: | |
| :::{option} --section-symbols, --st | |
| When used with {option}`--sections`, display symbols for each section shown. | |
| This option has no effect for GNU style output. | |
| ::: | |
| :::{option} --sort-symbols=<sort_key[,sort_key]> | |
| Specify the keys to sort symbols before displaying symtab. | |
| Valid values for sort_key are `name` and `type`. | |
| ::: | |
| :::{option} --stackmap | |
| Display contents of the stackmap section. | |
| ::: | |
| :::{option} --string-dump=<section[,section,...]>, -p | |
| Display the specified section(s) as a list of strings. `section` may be a | |
| section index or section name. | |
| ::: | |
| :::{option} --string-table | |
| Display contents of the string table. | |
| ::: | |
| :::{option} --symbols, --syms, -s | |
| Display the symbol table. | |
| ::: | |
| :::{option} --unwind, -u | |
| Display unwind information. | |
| ::: | |
| :::{option} --version | |
| Display the version of the {program}`llvm-readobj` executable. | |
| ::: | |
| :::{option} @<FILE> | |
| Read command-line options from response file `<FILE>`. | |
| ::: | |
| ## ELF SPECIFIC OPTIONS | |
| The following options are implemented only for the ELF file format. | |
| :::{option} --arch-specific, -A | |
| Display architecture-specific information, e.g. the ARM attributes section on ARM. | |
| ::: | |
| :::{option} --bb-addr-map | |
| Display the contents of the basic block address map section(s), which contain the | |
| address of each function, along with the relative offset of each basic block. | |
| When pgo analysis maps are present, all analyses are printed as their raw | |
| value. | |
| ::: | |
| :::{option} --call-graph-info | |
| Display the call graph section entries i.e. for each function | |
| its identifying information, each of its direct callees' information | |
| and for each indirect callee a 64-bit number representing the callee's | |
| function signature. This information can be used to reconstruct | |
| the program call graph. The output format is described in | |
| {doc}`/CallGraphSection`. | |
| ::: | |
| :::{option} --cg-profile | |
| Display the callgraph profile section. | |
| ::: | |
| :::{option} --dependent-libraries | |
| Display the dependent libraries section. | |
| ::: | |
| :::{option} --dynamic-table, --dynamic, -d | |
| Display the dynamic table. | |
| ::: | |
| :::{option} --dyn-relocations | |
| Display the dynamic relocation entries. | |
| ::: | |
| :::{option} --dyn-symbols, --dyn-syms, --dt | |
| Display the dynamic symbol table. | |
| ::: | |
| :::{option} --elf-linker-options | |
| Display the linker options section. | |
| ::: | |
| :::{option} --elf-output-style=<value> | |
| Format ELF information in the specified style. Valid options are `LLVM`, | |
| `GNU`, and `JSON`. `LLVM` output (the default) is an expanded and | |
| structured format. `GNU` output mimics the equivalent GNU {program}`readelf` | |
| output. `JSON` is JSON formatted output intended for machine consumption. | |
| ::: | |
| :::{option} --gnu-hash-table | |
| Display the GNU hash table for dynamic symbols. | |
| ::: | |
| :::{option} --hash-symbols | |
| Display the expanded hash table with dynamic symbol data. | |
| ::: | |
| :::{option} --hash-table | |
| Display the hash table for dynamic symbols. | |
| ::: | |
| :::{option} --histogram, -I | |
| Display a bucket list histogram for dynamic symbol hash tables. | |
| ::: | |
| :::{option} --memtag | |
| Display information about memory tagging present in the binary. This includes | |
| various dynamic entries, decoded global descriptor sections, and decoded | |
| Android-specific ELF notes. | |
| ::: | |
| :::{option} --notes, -n | |
| Display all notes. | |
| ::: | |
| :::{option} --pretty-pgo-analysis-map | |
| When pgo analysis maps are present in the basic block address map section(s), | |
| analyses with special formats (i.e. BlockFrequency, BranchProbability, etc) | |
| are printed using the same format as their respective analysis pass. | |
| Requires {option}`--bb-addr-map` to have an effect. | |
| ::: | |
| :::{option} --pretty-print | |
| When used with {option}`--elf-output-style`, JSON output will be formatted in | |
| a more readable format. | |
| ::: | |
| :::{option} --program-headers, --segments, -l | |
| Display the program headers. | |
| ::: | |
| :::{option} --section-groups, -g | |
| Display section groups. | |
| ::: | |
| :::{option} --section-mapping | |
| Display the section to segment mapping. | |
| ::: | |
| :::{option} --stack-sizes | |
| Display the contents of the stack sizes section(s), i.e. pairs of function | |
| names and the size of their stack frames. In `LLVM` and `JSON` output (see | |
| {option}`--elf-output-style`), each entry in a linked file also includes the | |
| function's address. | |
| ::: | |
| :::{option} --version-info, -V | |
| Display version sections. | |
| ::: | |
| ## MACH-O SPECIFIC OPTIONS | |
| The following options are implemented only for the Mach-O file format. | |
| :::{option} --macho-data-in-code | |
| Display the Data in Code command. | |
| ::: | |
| :::{option} --macho-dsymtab | |
| Display the Dsymtab command. | |
| ::: | |
| :::{option} --macho-indirect-symbols | |
| Display indirect symbols. | |
| ::: | |
| :::{option} --macho-linker-options | |
| Display the Mach-O-specific linker options. | |
| ::: | |
| :::{option} --macho-segment | |
| Display the Segment command. | |
| ::: | |
| :::{option} --macho-target-triple | |
| Display the target triple command. | |
| ::: | |
| :::{option} --macho-version-min | |
| Display the version min command. | |
| ::: | |
| ## PE/COFF SPECIFIC OPTIONS | |
| The following options are implemented only for the PE/COFF file format. | |
| :::{option} --codeview | |
| Display CodeView debug information. | |
| ::: | |
| :::{option} --codeview-ghash | |
| Enable global hashing for CodeView type stream de-duplication. | |
| ::: | |
| :::{option} --codeview-merged-types | |
| Display the merged CodeView type stream. | |
| ::: | |
| :::{option} --codeview-subsection-bytes | |
| Dump raw contents of CodeView debug sections and records. | |
| ::: | |
| :::{option} --coff-basereloc | |
| Display the .reloc section. | |
| ::: | |
| :::{option} --coff-debug-directory | |
| Display the debug directory. | |
| ::: | |
| :::{option} --coff-directives | |
| Display the .drectve section. | |
| ::: | |
| :::{option} --coff-exports | |
| Display the export table. | |
| ::: | |
| :::{option} --coff-imports | |
| Display the import table. | |
| ::: | |
| :::{option} --coff-load-config | |
| Display the load config. | |
| ::: | |
| :::{option} --coff-resources | |
| Display the .rsrc section. | |
| ::: | |
| :::{option} --coff-tls-directory | |
| Display the TLS directory. | |
| ::: | |
| ## XCOFF SPECIFIC OPTIONS | |
| The following options are implemented only for the XCOFF file format. | |
| :::{option} --auxiliary-header | |
| Display XCOFF Auxiliary header. | |
| ::: | |
| :::{option} --exception-section | |
| Display XCOFF exception section entries. | |
| ::: | |
| :::{option} --loader-section-header | |
| Display XCOFF loader section header. | |
| ::: | |
| :::{option} --loader-section-relocations | |
| Display relocation entries of loader section. | |
| ::: | |
| :::{option} --loader-section-symbols | |
| Display symbol table of loader section. | |
| ::: | |
| ## EXIT STATUS | |
| {program}`llvm-readobj` returns 0 under normal operation. It returns a non-zero | |
| exit code if there were any errors. | |
| ## SEE ALSO | |
| {manpage}`llvm-nm(1)`, {manpage}`llvm-objdump(1)`, {manpage}`llvm-readelf(1)` | |