204 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
llvm-dwarfdump - dump and verify DWARF debug information
 | 
						|
========================================================
 | 
						|
 | 
						|
.. program:: llvm-dwarfdump
 | 
						|
 | 
						|
SYNOPSIS
 | 
						|
--------
 | 
						|
 | 
						|
:program:`llvm-dwarfdump` [*options*] [*filename ...*]
 | 
						|
 | 
						|
DESCRIPTION
 | 
						|
-----------
 | 
						|
 | 
						|
:program:`llvm-dwarfdump` parses DWARF sections in object files,
 | 
						|
archives, and `.dSYM` bundles and prints their contents in
 | 
						|
human-readable form. Only the .debug_info section is printed unless one of
 | 
						|
the section-specific options or :option:`--all` is specified.
 | 
						|
 | 
						|
If no input file is specified, `a.out` is used instead. If `-` is used as the
 | 
						|
input file, :program:`llvm-dwarfdump` reads the input from its standard input
 | 
						|
stream.
 | 
						|
 | 
						|
OPTIONS
 | 
						|
-------
 | 
						|
 | 
						|
.. option:: -a, --all
 | 
						|
 | 
						|
            Dump all supported DWARF sections.
 | 
						|
 | 
						|
.. option:: --arch=<arch>
 | 
						|
 | 
						|
            Dump DWARF debug information for the specified CPU architecture.
 | 
						|
            Architectures may be specified by name or by number.  This
 | 
						|
            option can be specified multiple times, once for each desired
 | 
						|
            architecture.  All CPU architectures will be printed by
 | 
						|
            default.
 | 
						|
 | 
						|
.. option:: -c, --show-children
 | 
						|
 | 
						|
            Show a debug info entry's children when selectively printing with
 | 
						|
            the `=<offset>` argument of :option:`--debug-info`, or options such
 | 
						|
            as :option:`--find` or :option:`--name`.
 | 
						|
 | 
						|
.. option:: --color
 | 
						|
 | 
						|
            Use colors in output.
 | 
						|
 | 
						|
.. option:: -f <name>, --find=<name>
 | 
						|
 | 
						|
            Search for the exact text <name> in the accelerator tables
 | 
						|
            and print the matching debug information entries.
 | 
						|
            When there is no accelerator tables or the name of the DIE
 | 
						|
            you are looking for is not found in the accelerator tables,
 | 
						|
            try using the slower but more complete :option:`--name` option.
 | 
						|
 | 
						|
.. option:: -F, --show-form
 | 
						|
 | 
						|
            Show DWARF form types after the DWARF attribute types.
 | 
						|
 | 
						|
.. option:: -h, --help
 | 
						|
 | 
						|
            Show help and usage for this command.
 | 
						|
 | 
						|
.. option:: --help-list
 | 
						|
 | 
						|
            Show help and usage for this command without grouping the options
 | 
						|
            into categories.
 | 
						|
 | 
						|
.. option:: -i, --ignore-case
 | 
						|
 | 
						|
            Ignore case distinctions when using :option:`--name`.
 | 
						|
 | 
						|
.. option:: -n <name>, --name=<name>
 | 
						|
 | 
						|
            Find and print all debug info entries whose name
 | 
						|
            (`DW_AT_name` attribute) is <name>.
 | 
						|
 | 
						|
.. option:: --lookup=<address>
 | 
						|
 | 
						|
            Look up <address> in the debug information and print out the file,
 | 
						|
            function, block, and line table details.
 | 
						|
 | 
						|
.. option:: -o <path>
 | 
						|
 | 
						|
            Redirect output to a file specified by <path>, where `-` is the
 | 
						|
            standard output stream.
 | 
						|
 | 
						|
.. option:: -p, --show-parents
 | 
						|
 | 
						|
            Show a debug info entry's parents when selectively printing with
 | 
						|
            the `=<offset>` argument of :option:`--debug-info`, or options such
 | 
						|
            as :option:`--find` or :option:`--name`.
 | 
						|
 | 
						|
.. option:: --parent-recurse-depth=<N>
 | 
						|
 | 
						|
            When displaying debug info entry parents, only show them to a
 | 
						|
            maximum depth of <N>.
 | 
						|
 | 
						|
.. option:: --quiet
 | 
						|
 | 
						|
            Use with :option:`--verify` to not emit to `STDOUT`.
 | 
						|
 | 
						|
.. option:: -r <N>, --recurse-depth=<N>
 | 
						|
 | 
						|
            When displaying debug info entries, only show children to a maximum
 | 
						|
            depth of <N>.
 | 
						|
 | 
						|
.. option:: --show-section-sizes
 | 
						|
 | 
						|
            Show the sizes of all debug sections, expressed in bytes.
 | 
						|
 | 
						|
.. option:: --statistics
 | 
						|
 | 
						|
            Collect debug info quality metrics and print the results
 | 
						|
            as machine-readable single-line JSON output. The output
 | 
						|
            format is described in the section below (:ref:`stats-format`).
 | 
						|
 | 
						|
.. option:: --summarize-types
 | 
						|
 | 
						|
            Abbreviate the description of type unit entries.
 | 
						|
 | 
						|
.. option:: -x, --regex
 | 
						|
 | 
						|
            Treat any <name> strings as regular expressions when searching
 | 
						|
            with :option:`--name`. If :option:`--ignore-case` is also specified,
 | 
						|
            the regular expression becomes case-insensitive.
 | 
						|
 | 
						|
.. option:: -u, --uuid
 | 
						|
 | 
						|
            Show the UUID for each architecture.
 | 
						|
 | 
						|
.. option:: --diff
 | 
						|
 | 
						|
            Dump the output in a format that is more friendly for comparing
 | 
						|
            DWARF output from two different files.
 | 
						|
 | 
						|
.. option:: -v, --verbose
 | 
						|
 | 
						|
            Display verbose information when dumping. This can help to debug
 | 
						|
            DWARF issues.
 | 
						|
 | 
						|
.. option:: --verify
 | 
						|
 | 
						|
            Verify the structure of the DWARF information by verifying the
 | 
						|
            compile unit chains, DIE relationships graph, address
 | 
						|
            ranges, and more.
 | 
						|
 | 
						|
.. option:: --version
 | 
						|
 | 
						|
            Display the version of the tool.
 | 
						|
 | 
						|
.. option:: --debug-abbrev, --debug-addr, --debug-aranges, --debug-cu-index, --debug-frame [=<offset>], --debug-gnu-pubnames, --debug-gnu-pubtypes, --debug-info [=<offset>], --debug-line [=<offset>], --debug-line-str, --debug-loc [=<offset>], --debug-loclists [=<offset>], --debug-macro, --debug-names, --debug-pubnames, --debug-pubtypes, --debug-ranges, --debug-rnglists, --debug-str, --debug-str-offsets, --debug-tu-index, --debug-types [=<offset>], --eh-frame [=<offset>], --gdb-index, --apple-names, --apple-types, --apple-namespaces, --apple-objc
 | 
						|
 | 
						|
            Dump the specified DWARF section by name. Only the
 | 
						|
            `.debug_info` section is shown by default. Some entries
 | 
						|
            support adding an `=<offset>` as a way to provide an
 | 
						|
            optional offset of the exact entry to dump within the
 | 
						|
            respective section. When an offset is provided, only the
 | 
						|
            entry at that offset will be dumped, else the entire
 | 
						|
            section will be dumped.
 | 
						|
 | 
						|
            The :option:`--debug-macro` option prints both the .debug_macro and the .debug_macinfo sections.
 | 
						|
 | 
						|
            The :option:`--debug-frame` and :option:`--eh-frame` options are aliases, in cases where both sections are present one command outputs both.
 | 
						|
 | 
						|
.. option:: @<FILE>
 | 
						|
 | 
						|
            Read command-line options from `<FILE>`.
 | 
						|
 | 
						|
.. _stats-format:
 | 
						|
 | 
						|
FORMAT OF STATISTICS OUTPUT
 | 
						|
---------------------------
 | 
						|
 | 
						|
The :option:`--statistics` option generates single-line JSON output
 | 
						|
representing quality metrics of the processed debug info. These metrics are
 | 
						|
useful to compare changes between two compilers, particularly for judging
 | 
						|
the effect that a change to the compiler has on the debug info quality.
 | 
						|
 | 
						|
The output is formatted as key-value pairs. The first pair contains a version
 | 
						|
number. The following naming scheme is used for the keys:
 | 
						|
 | 
						|
      - `variables` ==> local variables and parameters
 | 
						|
      - `local vars` ==> local variables
 | 
						|
      - `params` ==> formal parameters
 | 
						|
 | 
						|
For aggregated values, the following keys are used:
 | 
						|
 | 
						|
      - `sum_of_all_variables(...)` ==> the sum applied to all variables
 | 
						|
      - `#bytes` ==> the number of bytes
 | 
						|
      - `#variables - entry values ...` ==> the number of variables excluding
 | 
						|
        the entry values etc.
 | 
						|
 | 
						|
EXIT STATUS
 | 
						|
-----------
 | 
						|
 | 
						|
:program:`llvm-dwarfdump` returns 0 if the input files were parsed and dumped
 | 
						|
successfully. Otherwise, it returns 1.
 | 
						|
 | 
						|
SEE ALSO
 | 
						|
--------
 | 
						|
 | 
						|
:manpage:`dsymutil(1)`
 |