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)`
 |