man dwarfdump Command

Man page for apt-get dwarfdump Command

Man Page for dwarfdump in Linux

Ubuntu Man Command : man dwarfdump

Man Dwarfdump  Command

This tutorial shows the man page for man dwarfdump in linux.

Open terminal with 'su' access and type the command as shown below:
man dwarfdump

Result of the Command Execution shown below:

DWARFDUMP()                                                                                                                                              DWARFDUMP()



NAME
dwarfdump dumps DWARF debug information of an ELF object

SYNOPSIS
dwarfdump [ abcdefilmoprsvy] [ ka] [ t{afv}] [ ucuname] objectfilename

DESCRIPTION
The dwarfdump command prints DWARF sections as requested by specific options. With no options (but with the required objectfilename ) all sections print.

The format is intended to be human readable. If a script is to parse the output, the d option is useful.

Not all sections actually exist in any given object file.

The format may change from release to release, so it is unwise to depend too heavily on the format.

Frame information (.debug_frame and .eh_frame) is heavily dependent on the ABI/ISA of the object file. The ' R' option uses a built in generic register name
set handling up to 1200 registers named r0 r1199. The ' x abi=' description below shows how to name an abi and use that to guide the f or F process
ing. Unless the cpu for the object file being dumped has many registers, do not use R or x abi=generic as those will be needlessly slow dumping frame sec
tions. Instead, use the correct abi (if it exists in dwarfdump.conf) or a generic such as x abi=generic100 or x abi=generic500. Without ' R' or ' x
abi=' dwarfdump ignores the dwarfdump.conf file and uses compiled in MIPS/IRIX conventions. If no ' x name=' is given, dwarfdump looks for
"./dwarfdump.conf", "$HOME/.dwarfdump.conf", "/lib/dwarfdump.conf" and takes the first it finds. If one or more ' x name=' is given
the last of these is used and all other such files ignored.

The dwarfdump command accepts one or more of the following options:

a Dumps most sections. Same as bcfilmoprsy tfv.

b Dumps the .debug_abbrev section.

c Dumps the .debug_loc section.

C Activate warnings about some common extensions to DWARF in the .debug_info section.

d Dense mode. Each die information of the .debug_info section is printed in one line format. This option does not imply i.

e Ellipsis mode. Short names for DW_TAG_* and DW_ATTR_* are used in the output for the .debug_info section.

f Dumps the .debug_frame section.

i Dumps the .debug_info section.

ka Adds all available error checks to whatever sections are being read. At the end of the run prints the instances inspected and the number of
errors for each type of check. If there are more than zero errors the compiler has emitted invalid DWARF.

l Dumps the .debug_line information.

m Dumps the .debug_macinfo section.

M Dumps the form name for each attribute in each die entry printed, and if the form is the indirect form notes that too. If combined with v it
also prints the form number.

n Supress function name lookup for the .debug_frame and .eh_frame sections. This can speed up printing of these sections.

N Dumps the .debug_ranges section. There is no guarantee in the DWARF standard that just scanning the bytes like this will print the section
correctly, only the i output is really guaranteed by DWARF to find ranges correctly. But it will normally work and the output may be of value
to compiler writers. This section is not dumped by a, but a and i dump the ranges data applicable to each DW_AT_ranges attribute.

o Dumps the .reloc_debug_* sections.

p Dumps the .debug_pubnames section.

r Dumps the .debug_aranges section.

s Dumps .debug_string section.

S match=
Examines the .debug_info section and for each die with an attribute containing exactly that string (case matters) it prints the die owner tree
from the compilation unit to the die containing the string. The string matching is done on the printable form, so addresses are matched as
strings. So "dwarfdump S match=main a.out" will print the main program die and the compilation unit die (assuming there is a "main" in
a.out). Previously printed dies are not reprinted.

S any=
Examines the .debug_info section and for each die with an attribute containing that substring (case is ignored) it prints the die owner tree
from the compilation unit to the die containing the string. The string matching is done on the printable form, so addresses are matched as
strings. So "dwarfdump S any=main a.out" will print the each die with an attribute with the letters "main" (and the die tree owning this
die). Previously printed dies are not reprinted. S regex= If POSIX regular expressions are present at build time and detected by the
build, this examines the .debug_info section and for each die with an attribute that matches the regular expression presented it prints the
die owner tree from the compilation unit to the die containing the string. The string matching is done on the printable form, so addresses are
matched as strings. So "dwarfdump S regex=ma.n a.out" will print the each die with an attribute containing a string such as "main" or
"maxn" ( any string matching the regular expression) (and the die tree owning this die). You may find it necessary to quote the
"regex=" so that your shell will not transform the expression. Previously printed dies are not reprinted.

ta Same as tfv.

tf Dumps the .debug_static_funcs section.

tv Dumps the .debug_static_vars section.

ucuname
Restricts the dumping of sections to dump only sections of the named compilation unit.

v Verbose mode. Shows more detailed information. Prints the abbreviation index for each DIE (on its DW_TAG line). More detailed information
about the .debug_frame section prints if 2 or 3 v options are given.

w Dumps the .debug_weaknames section.

x abi=
where abi=names an abi in dwarfdump.conf (see the abiname: command in dwarfdump.conf). The abinames defined at this time in dwarfdump.conf are
mips ia64 x86 x86_64 m68k ppc generic generic500 generic100 . If the cpu has relatively few registers use of x abi=generic (or the R option,
see above) will needlessly slow down printing of the frame sections, so use the correct abi or generic100 (or for a machine with more than 100
registers but under 500 use generic500).

x name=
where name=names the full pathname of a dwarfdump configuration file. Default install location is /usr/local/lib/dwarfdump.conf. dwarfdump
looks first for local ./dwarfdump.conf, then for $HOME/.dwarfdump.conf then for /usr/local/lib/dwarfdump.conf.

y Dumps the .debug_types section.

FILES
dwarfdump dwarfdump.conf $(HOME)/.dwarfdump.conf /lib/dwarfdump.conf

NOTES
In some cases compilers use DW_FORM_data1 (for example) and in such cases the signedness of the value must be taken from context. Rather than attempt to
determine the context, dwarfdump prints the value with both signednesses whenever there is ambiguity about the correct interpretation. For example,
"DW_AT_const_value 176(as signed = 80)". For normal DWARF consumers that correctly and fully evaluate all attributes there is no ambiguity of
signedness: the ambiguity for dwarfdump is due to dwarfdump evaluating DIEs in a simple order and not keeping track of much context.

BUGS
Support for DWARF3 is being completed but may not be complete.



DWARFDUMP()


Related Topics

Apt Get Commands