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:: --all
Equivalent to specifying all the main display options relevant to the file
format.
.. option:: --addrsig
Display the address-significance table.
.. 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:: --memtag
Display information about memory tagging present in the binary. This includes
various memtag-specific dynamic entries, decoded global descriptor sections,
and decoded Android-specific ELF notes.
.. 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:: --relocations, --relocs, -r
Display the relocation entries in the file.
.. option:: --sections, --section-headers, -S
Display all sections.
.. 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:: --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:: --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:: --dependent-libraries
Display the dependent libraries section.
.. option:: --dyn-relocations
Display the dynamic relocation entries.
.. option:: --dyn-symbols, --dyn-syms, --dt
Display the dynamic symbol table.
.. option:: --dynamic-table, --dynamic, -d
Display the dynamic table.
.. option:: --cg-profile
Display the callgraph profile section.
.. option:: --histogram, -I
Display a bucket list histogram for dynamic symbol hash tables.
.. 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:: --section-groups, -g
Display section groups.
.. 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:: --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-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-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. Currently only implemented for GNU
style output.
.. 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-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-tls-directory
Display the TLS 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.
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-symbols
Display symbol table of loader section.
.. option:: --loader-section-relocations
Display relocation entries 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)`