mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 23:56:06 +00:00

Adds JSONScopedPrinter to llvm-readelf. It includes an empty JSONELFDumper class which will be used to override any LLVMELFDumper methods which utilize startLine() which JSONScopedPrinter cannot provide. This introduces a change where calls to llvm-readelf with non-ELF object files that specify --elf-output-style=GNU will now print file summary information where it previously didn't. Fixes previous Windows test failure which occured due to JSON escaping of '\' by not relying on LIT substitution. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D114225
339 lines
8.0 KiB
ReStructuredText
339 lines
8.0 KiB
ReStructuredText
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:: --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:: --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:: --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.
|
|
|
|
.. option:: --demangle, -C
|
|
|
|
Display demangled symbol names in the output.
|
|
|
|
.. 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:: --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:: --raw-relr
|
|
|
|
Do not decode relocations in RELR relocation sections when displaying them.
|
|
|
|
.. 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.
|
|
|
|
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)`
|