1DWARFDUMP()                                                        DWARFDUMP()
2
3
4

NAME

6       dwarfdump - dumps DWARF debug information of an ELF object
7

SYNOPSIS

9       dwarfdump [options] objectfilename
10

DESCRIPTION

12       The  dwarfdump  command prints or checks DWARF sections as requested by
13       specific options.  With no options (but with the  required  objectfile‐
14       name ) all sections print (but some sections cannot be printed indepen‐
15       dently  safely,  so  those  are  only  printed  at  offsets  where  the
16       .debug_info section refers to those sections).
17
18       For  split-dwarf  (DWARF5)  object files see Split Object Files, DWARF5
19       section 7.3.
20
21
22       Nearly all options are available  in  the  traditional  (single-letter)
23       form and in a long-options form with meaningful names.  New options are
24       only in the long-options form.
25
26
27       With no options dwarfdump prints a basic set of DWARF section  informa‐
28       tion.   If  any  option  is  given on the command line the basic set is
29       ignored and one must tell dwarfdump what to print or check (for example
30       by adding the -a option).
31
32
33       As of June 2011 the printing options and the checking options are mutu‐
34       ally exclusive (if checking options are selected  the  section  details
35       are not printed). When errors are encountered dwarfdump does attempt to
36       print sufficient context so that one can understand exactly  where  the
37       error  is in the DWARF.  This change makes checking really large object
38       files much easier.
39
40       The format is intended to be human readable.  If a script is  to  parse
41       the output, the --format-dense (-d) option is useful.
42
43       Not all sections actually exist in any given object file.
44
45       The  output  format may change from release to release, so it is unwise
46       to depend too heavily on the format.
47
48       Frame information (.debug_frame and .eh_frame) is heavily dependent  on
49       the  ABI/ISA  of  the  object file.  By default we use a generic set of
50       register names handling up to 100 registers named r0-r99.
51
52       As of 2020 there are three different ways compiler writers separate the
53       DWARF  information  from  an  executable/shared-object.   One is DWARF5
54       Split Dwarf (the --file-tied option is useful for  these).  Another  ls
55       GNU  debuglink  (libdwarf  automatically finds the DWARF when given the
56       name of the executable, use --no-follow-debuglink to suppress this  and
57       make  possible  printing the backtrace data in section .eh_frame).  The
58       third way is on MacOS: the debug DWARF is in a separate object  (dwarf‐
59       dump/libdwarf  automatically  find  it  if  it is present, --no-follow-
60       debuglink suppresses this finding).
61
62       In many cases one can get additional detail by specifying -v (sometimes
63       -v  -v  gets  even  more).  When  printing  DIEs (Debugging Information
64       Entries) the options -G (showing global offsets)  and  -M  (naming  the
65       DW_FORM*  of  attributes) (or their -- counterparts) can be a great aid
66       to understanding DWARF..
67
68       The --format-registers (-R) option uses  a  built-in  generic  register
69       name set handling up to 1200 registers named r0-r1199.
70
71       The  -file-abi=<abi> (-x abi=<abi>) description below shows how to name
72       an abi and use that to  guide  the  --print-frame (-f)  or  --print-eh-
73       frame (-F) processing.
74
75       Unless  one  of --print-frame (-f) or --print-eh-frame (-F) or --print-
76       all (-a) is used any abi reference is ignored  because  no  frame  data
77       will be printed.
78
79
80       Unless  the cpu for the object file being dumped has many registers, do
81       not use --format-registers or -file-abi=<abi> as  those  can  be  need‐
82       lessly slow dumping frame sections. Instead, use the correct abi (if it
83       exists   in   dwarfdump.conf)   or   a   generic   such   as    --file-
84       abi=abi=generic100 or --file-abi=abi=generic500
85        .
86
87       The  most useful abi choices are likely mips or x86 or x86_64 or ppc or
88       arm
89        .  Without --format-registers (-R)  or  -file-abi=<abi> (-x abi=<abi>)
90       dwarfdump  ignores the dwarfdump.conf file and uses compiled-in generic
91       set of register names.  If  no  --file-name=<path> (-x name=<path>)  is
92       given, dwarfdump looks for "./dwarfdump.conf", "$HOME/.dwarfdump.conf",
93       "<install-prefix>/lib/dwarfdump.conf" and takes the first it finds.  If
94       one  or  more  --file-name=<path> (-x name=<path>) is given the last of
95       these is used and all other such files are ignored.
96
97       Some checking ( -k) options (See "Check DWARF Integrity"  in  the  help
98       output)  print  so-called  harmless  errors.  These are compiler errors
99       that do not cause any known problem and are only detected inside  libd‐
100       warf  itself.   These are difficult to properly report in dwarfdump and
101       any error strings may not appear  close  to  the  time  the  error  was
102       encountered.
103
104       If  zlib  compression was used on the DWARF sections in the object file
105       being read the real section names such  as  .zdebug_info  etc  will  be
106       reported  by  dwarfdump.  When dwarfdump says something is at offset 55
107       of .zdebug_info (or the like) keep in mind that the offset  applies  to
108       the  uncompressed section (in memory), not the .zdebug_ compressed sec‐
109       tion in objectfilename.
110

URI-STYLE INPUT STRINGS

112       The <objectfilename> and all the options taking name strings  look  for
113       URIs  and  translate  the URI strings to characters by default.  So any
114       single % character is treated as if the following  two  characters  are
115       hex digits representing the underlying true character.  Various charac‐
116       ters are meaningful to shells (such as bash or sh) and to getopt  (such
117       as  the space character) If the URI translation does anything it prints
118       the before and after of the URI  translation  on  standard  output,  so
119       inspection  of the first lines of output will show if URI did anything.
120       The actual options themselves are assumed to be  non-URI.   So  in  the
121       option  --format-producer=S&T (-cS&T) the & character might cause input
122       issues so --format-producer=S%26T should be used instead.  To  actually
123       input a single % character (in a name, for example), double it to %% on
124       the command line (or simply use %25).
125
126       Options --format-suppress-uri (-U) (turning off URI interpretation) and
127       --format-suppress-uri-msg (-q)  (making  finding  URI sequences silent)
128       give finer control of URI interpretation.
129
130       As an example, to get a string'a b' make the string 'a%20b'  (here  the
131       quote  (')  is  for  exposition not part of the string, though quote is
132       certainly problematic in a name).  Instead of escaping " quotes in  the
133       string, type %25, as in
134        'a  "b'  should be typed 'a%20%25b' Any characters can be typed in URI
135       style, not just characters  which  are  problematic  to  the  shell  or
136       getopt.   We  strongly  suggest you not type URI-style characters where
137       such are not needed or use the  %  character  itself  in  command  line
138       strings unless you must.
139

URI-STYLE OUTPUT (printing)

141       Dwarfdump  translates  any characters in strings which are not ordinary
142       printable ASCII (and some which are ASCII) in the reverse of the previ‐
143       ous  section.  It prints into a uri-style output in the form %xx, where
144       xx are hex digits in the form of ASCII 0-9a-0f.   The  percent  charac‐
145       ter(%) is printed as '%25'
146
147       This  is  a  clumsy  way to deal with UTF-8 strings and sensible way to
148       deal with the low ASCII values that on many systems cause one's  termi‐
149       nal  to behave oddly. Such translations are not idempotent so dwarfdump
150       avoids doing the translation more than once on any string.  See  option
151       --format-suppress-sanitize  below  to  eliminate the output transforma‐
152       tion.
153
154

PRINTING OPTIONS

156       --print-all (-a)
157              Print each section as independently as possible.  Sections  that
158              can  safely  be  printed independently (like .debug_abbrev) have
159              relevant info printed in the report (sometimes dependent on -v).
160
161
162       --print-abbrev (-b)
163              Print the .debug_abbrev section. Because  the  DWARF  specifica‐
164              tions  do  not  rule out garbage data areas in .debug_abbrev (if
165              they are not referenced from .debug_info) any garbage bytes  can
166              result in this print failing.
167
168
169       --print-loc (-c)
170              Print locations lists.
171
172
173       --print-debug-gnu
174              Print   the  .debug_gnu_pubnames  and  .debug_gnu_typenames sec‐
175              tions.
176
177
178       --print-fission
179              Print  the .gdb_index, .debug_cu_index,
180               .debug_tu_index, .gnu.debuglink,
181                and .note.gnu.build-id sections.
182
183
184       --print-gnu-debuglink
185              Print .gnu_debuglink and .note.gnu.build-id sections
186
187
188       --elf (-E)
189              prints, for Elf objects, object file details.   See  the  "Print
190              ELF  Section  Headers"  section  of the help file for additional
191              choices on elf printing.  If  libdwarf  or  dwarfdump  is  built
192              without libelf this and related options are not available.
193
194
195       --print-frame (-f)
196              Print the .debug_frame section.
197
198       --print-eh-frame (-F)
199              Print the GNU .eh_frame section.
200
201
202       --print-info (-i)
203              Print the .debug_info section.
204
205
206       --print-fission (-I)
207              Print  any .gdb_index, .debug_cu_index, and .debug_tu_index sec‐
208              tions that exist in the object.
209
210
211       --print-gnu-debuglink
212              If the .gnu_debuglink section is present its content is printed.
213              If  the  .note.gnu.build-id  section  is  present its content is
214              printed.  If a DWARF containing file named by the content of the
215              .gnu_debuglink section exists the name will be printed.
216
217
218       --print-lines (-l)
219              Print  the  .debug_info  section and the associated line section
220              data.
221
222       --print-lines-short (-ls)
223              Print the .debug_info section and the  associated  line  section
224              data,  but  omit  the <pc> address.  Useful when a comparison of
225              line sections from objects with slight differences is required.
226
227
228       --print-macinfo (-m)
229              Print the .debug_macinfo (DWARF 2,3,4) and .debug_macro (DWARF5)
230              sections.
231
232
233       --print-ranges (-N)
234              Print  .debug_ranges  section.  Because the DWARF specifications
235              do not rule out garbage data areas in .debug_ranges (if they are
236              not referenced from .debug_info) any garbage bytes can result in
237              this print failing.
238
239
240       --print-pubnames (-p)
241              Print the .debug_pubnames section.
242
243
244       --print-str-offsets
245              Print the .debug_str_offsets section.
246
247
248       --print-aranges (-r)
249              Print the .debug_aranges section.
250
251       --print-strings (-s)
252              Print .debug_string section.
253
254
255       --print-static (-ta)
256              Print   the   IRIX   only   sections   .debug_static_funcs   and
257              .debug_static_vars.
258
259
260       --print-type (-y)
261              Print  the .debug_pubtypes section (and .debug_typenames, an SGI
262              IRIX-only section).
263
264
265       Having dwarfdump print relocations may help establish whether dwarfdump
266       understands  any relocations that might exist.  Other tools may be more
267       useful than dwarfdump for printing object-file details.   If  dwarfdump
268       or libelf is built without libelf the relocation options are not avail‐
269       able.  See "Print Elf Relocation Data" in the  help  output  for  addi‐
270       tional relocation printing choices.
271
272
273       --reloc (-o)
274              Print all relocation records as well as we can manage.  If libd‐
275              warf or dwarfdump were  built  without  libelf  this  option  is
276              unavailable.
277
278
279       --version (-V)
280              Print a dwarfdump date/version string and stop.
281
282

CHECKING OPTIONS

284       --check-all (-ka)
285              Turns    on   all   checking   options   except   --check-frame-
286              extended (-kxe) (which might be slow enough one might  not  want
287              to use it routinely.)
288
289
290       --check-abbrev (-kb)
291              Checks  for  certain  abbreviations  section errors when reading
292              DIEs.
293
294
295       --check-constants (-kc)
296              Checks for errors in constants in debug_info.
297
298       -check-show (-kd)
299              Turns on full reporting of  error  totals  per  producer.   (the
300              default shows less detail).
301
302       --check-silent-ks
303              Turns off some verbose checking detection.
304
305
306       --check-attr-dup (-kD)
307              Turns   on   reporting  of  duplicated  attributes.   Duplicated
308              attributes on a single DW_TAG are improper DWARF, but  at  least
309              one compiler emitted such.
310
311       --check-pubnames (-ke)
312              Turns on reading pubnames and checking for fde errors.
313
314       --check-attr-encodings (-kE)
315              Checks  the  integer encoding representation in debug_info, com‐
316              puting whether these integer values could fit in fewer bytes  if
317              represented in LEB128.
318
319
320       --check-frame-info (-kf)
321              Turns on checking for FDE errors (.debug_frame and .eh_frame).
322
323       --check-files-lines (-kF)
324              Turns on checking for line table errors.
325
326       --check-gaps (-kg)
327              Turns on checking for unused gaps in .debug_info (these gaps are
328              not an error, just a waste of space).
329
330       --check-unique (-kG)
331              Print only unique errors. Error lines are simpified (hex numbers
332              removed, for example) and when a given message string would oth‐
333              erwise appear again it is suppressed.
334
335       --check-summary (-ki)
336              Causes a summary of checking results per compiler (producer)  to
337              be printed at the end.
338
339
340       --check-loc (-kl)
341              Turns on locations list checking.
342
343       --check-ranges (-km)
344              Turns on checking of ranges.
345
346       --check-aranges (-kM)
347              Turns on checking of aranges.
348
349       --check-tag-attr (-kr)
350              Turns  on  DIE  tag-attr combinations checking, looking for sur‐
351              prising attributes for DIE tags.   It  does  not  report  common
352              extensions  as  errors.   Common  extensions to the standard are
353              allowed as if standard.  See the -C (--format-extensions) option
354              to show common extensions as errors.
355
356       --check-forward-refs (-kR)
357              Turns on reading DIEs and checking for forward declarations from
358              DW_AT_specification attributes.  (which are not an error but can
359              be a source of inefficiency for debuggers).
360
361       --check-self-refs (-kS)
362              Turns on checking DIE references for circular references.
363
364       --check-tag-tag (-kt)
365              Turns  on  tag-tag combinations checking, looking for surprising
366              parent-child DIE  relationships.   It  does  not  report  common
367              extensions  as  errors.   Common  extensions to the standard are
368              allowed as if standard.  See the -C (--format-extensions) option
369              to show common extensions as errors.
370
371       --check-usage (-ku)
372              Print tag-tree and tag-attribute usage (basic format).
373
374       --check-usage-extended (-kuf)
375              Print tag-tree and tag-attribute usage (full format).  For stan‐
376              dard TAGs and ATtributes this presents an overview of  how  they
377              were used.
378
379
380       --check-frame-basic (-kx)
381              Turns on basic frames checking for .debug_frame and .eh_frame).
382
383       --check-frame-extended (-kxe)
384              Turns  off basic check_frames and turns on extended frame check‐
385              ing for .debug_frame and .eh_frame.  This option can be slow.
386
387
388       --check-type (-ky)
389              Turns on type_offset checking (ensuring local attribute  offsets
390              refer  to  what  they  should) and that DW_AT_decl_file and some
391              other offsets refer to appropriate locations.
392
393

OPTION MODIFIERS

395       --format-extensions (-C)
396              This  is  a  secondary  option  after  --check-tag-tag (-kt)  or
397              --check-tag-attr (-kr).   Normally  when checking for tag-tag or
398              tag-attribute combinations both the  standard  combinations  and
399              some  common  extensions  are allowed (not reported).  With this
400              option the extensions are taken out of the class of allowed com‐
401              binations.
402
403
404       --format-dense (-d)
405              When  printing  DIEs, put all the attributes for each DIE on the
406              same (long) line as the TAG. This makes searching for DIE infor‐
407              mation  (as  with grep) much simpler as the entire DIE is on one
408              line.
409
410
411       --format-supress-offsets (-D)
412              Turns off the display of section offsets and attribute values in
413              printed  output.   So  the  .debug_info  output is just TAGs and
414              Attributes.  For pubnames (and the like) it removes offsets from
415              the  output.   For  locations  lists it removes offsets from the
416              output, but that is useless since  the  attribute  values  don't
417              show so neither does the location data.
418
419
420       --format-ellipsis (-e)
421              Turns  on  truncation  of  attribute  and tag names. For example
422              DW_TAG_foo becomes foo. Not compatible with checking, only  use‐
423              ful for printing DIEs.
424
425
426       --format-global-offsets (-G)
427              When printing, add global offsets to the offsets printed.
428
429
430       --format-limit=<num> (-H number)
431              When  printing  or  checking  .debug_info,  this  terminates the
432              search after 'number' compilation  units.  When  printing  frame
433              information  this  terminates  the  FDE reporting after 'number'
434              FDEs and the CIE reporting (which occurs if one adds  -v)  after
435              'number' CIEs. Example '--format-limit=1'
436
437
438       --format-attr-name (-M)
439              When  printing,  show  the  FORM for each attribute.  If a -v is
440              added (or more than one) then details of  any  form  indirection
441              are also shown.
442
443
444       --format-suppress-lookup (-n)
445              When  printing  frames,  this  turns off the search for function
446              names in inner scopes.  Unless the language used  to  build  the
447              object  file supports function definitions in inner scopes there
448              is no point in looking for function names in inner scopes.   And
449              a  really  large  object  the search can take more time than one
450              wants to wait.  This option suppresses the inner scope search.
451
452
453       --file-output=<path> (-Ofile=<path>)
454              The <path> will be used as the file name for output  instead  of
455              writing to stdout (stdout is the default).
456
457
458       --format-suppress-data (-Q)
459              Suppresses  section  data  printing  (set  automatically  with a
460              checking option).
461
462
463       --format-suppress-sanitize
464              Suppresses the default string-printing translations so non-ascii
465              and  non-printable  characters  from the object file are printed
466              as-is.  See "URI-STYLE OUTPUT" above.
467
468
469       --format-suppress-uri (-U)
470              Suppresses the default URI translation of following  options  on
471              the command line.  See "URI-STYLE INPUT STRINGS" above.
472
473
474       --format-registers (-R)
475              When  printing  frames  for  ABIs  with  lots of registers, this
476              allows up to 1200 registers to  be  named  (like  R999)  without
477              choosing an ABI with, for example '-x abi=ppc' or, equivalently,
478              '--file-abi=ppc'
479
480
481       --version (-v)
482              Increases the detail shown when  printing.   In  some  sections,
483              using more -v options will increase the detail (one to three are
484              useful) or may change the  report  to  show,  for  example,  the
485              actual line-data-commands instead of the resultant line-table.
486
487

LIMITING OUTPUT

489       The  simplist limiting option is to stop the examination/printing after
490       <num> compilation units.   See  -H  and   --format-limit  above.   This
491       option  also  limits  the  number  of  FDEs  and  CIEs printed from any
492       .debug_frame or .eh_frame section.
493
494
495       The --search (-S) options stand alone and basic print information about
496       the  compilation  unit and DIE where the string(s) appear.  At most one
497       of each of the following is effective (so for example one can only have
498       one 'match', but one can have a 'match', an 'any', and a 'regex').  Any
499       --search (-S) causes the  .debug_info  section  to  be  inspected.   No
500       checking   options   or   printing  options  should  be  supplied  with
501       --search(-S) options.  The strings should use URI-style  to  avoid  any
502       conflicts  with  the command-line parser applicable (bash, sh, ...)  or
503       getopt(), as well as using URI to deal with searching  for  strings  in
504       non-ASCII such as French, (etc) or the now-nearly-universal UTF8.
505
506       These are particularly useful when the amount of DWARF information out‐
507       put by -i is multiple gigabytes of data.
508
509       If v is added to the -S option, the number of occurrences  is  printed.
510       (see below for an example).
511
512
513       --search-match=<string> (-Smatch=string)
514
515       --search-match-count=<string> (-Svmatch=string)
516              When  printing  DIEs  for  each tag value or attribute name that
517              matches 'string' exactly print the compilation unit  information
518              and  its  section  offset.  Any CU with no match is not printed.
519              The 'string' is read as a  URI  string.   The  count  (Sv)  form
520              reports the count of occurrences.
521
522
523       --search-any=<string> (-Sany=string)
524
525       --search-any-count=<string> (-Svany=string)
526              When  printing  DIEs  for  each tag value or attribute name that
527              contains 'string' somewhere in the tag or attribute (case insen‐
528              sitive)  print  the compilation unit information and its section
529              offset.  Any CU with no match is not printed.  The  'string'  is
530              read  as a URI string.  The count (Sv) form reports the count of
531              occurrences.
532
533
534       --search-regex=string (-Sregex=string)
535
536       --search-regex-count=string (-Svregex=string)
537              When printing DIEs for each tag value or  attribute  name  where
538              the  'string'  reqular  expression matches print the compilation
539              unit information and its section offset.  Any CU with  no  match
540              is  not  printed.   The  'string'  is read as a URI string.  The
541              count (Sv) form reports the count of occurrences.
542
543
544       The string cannot have spaces or other characters which are  meaningful
545       to  getopt(3) and the shell will strip off quotes and other characters.
546       So the string is assumed to be in URI  style  and  is  translated.   In
547       other  words,  to  match  'a  b'  make the -S string 'a%20b' Instead of
548       escaping " quotes in the string, type %25, as in
549        'a "b' should be typed 'a%20%25b' (the ' are for exposition here,  not
550       part  of  the  strings).  Any characters can be typed in URI style, not
551       just characters which are problematic to the shell or getopt.
552
553       The --search-any (-Sany) and  --regex-any (-Sregex)  options  are  only
554       usable  if  regular-expression  library functions required are found at
555       configure time.
556
557       The --search-print (-W) option is a modifier  to  the  -S  option,  and
558       increases the amount of output -S prints.  An example v modifier to the
559       -S option is shown below.  And we show the -W  in  context  with  a  -S
560       option.
561
562
563       --search-match-count=string
564              Prints information about the DIEs that -S matches and prints the
565              count of occurrences.
566
567
568       -S match=string1 -W
569
570
571       --search-match=string1 --search-print-tree
572              Prints the parent tree and the children tree for the  DIEs  that
573              --search-match  matches.
574
575
576       -S match=string2 -Wp
577
578
579       --search-match=string2 --search-print-parent
580              Prints the parent tree for the DIEs that -S matches.
581
582
583       -S match=string3 -Wc
584
585       --search-match=string3 --search-print-children
586              Prints the children tree for the DIEs that -S matches.
587
588
589       --format-gcc (-cg)
590              Restricts  printing/checking  to compilers whose producer string
591              starts with 'GNU' and turns off -cs.
592
593
594       --format-snc (-cs)
595              Restricts printing/checking to compilers whose  producer  string
596              starts with 'SN' and turns off -cg.
597
598
599       --format-producer=<name> (-c<name>)
600              Restricts  printing/checking  to compilers whose producer string
601              contains 'name' (not case sensitive).  The 'name' is read  as  a
602              URI string.
603
604
605

OTHER OPTIONS

607       -x name=<path>
608
609       --file-name=/p/a/t/h.conf (-xname=/p/a/t/h.conf)
610              The file path given is the name of a file assumed to be a dwarf‐
611              dump.conf-like file.  The file path is read as a URI string.
612
613
614       -x abi=ppc
615
616       --file-abi=ppc
617              Selects the abi (from a  dwarfdump.conf  file)  to  be  used  in
618              printing  frame information (here using ppc as an example).  The
619              abi is read as a URI string.
620
621
622       --format-group=<n> (-x groupnumber=<n>)
623              For an object file with both DWARF5 split dwarf (.debug_info.dwo
624              for example)  and ordinary DWARF sections (.debug_info for exam‐
625              ple) in the single object file one must use --format-group=2  to
626              print  the  dwo  sections.  Adding --file-tied=<path> naming the
627              same object file ties in the non-dwo sections.
628
629
630       -x tied=/t/i/depath
631
632       --file-tied=/t/i/depath
633              Used when opening a main object that is a  .dwo  or  .dwp  file.
634              For  example if /path/to/myapp.dwp is the split-dwarf object and
635              /path/to/myapp  is  the  executable,   do   "dwarfdump   --file-
636              tied=/path/to/myapp  /path/to/myapp.dwp"   .  The tied file path
637              names the executable which has the .debug_addr section that  may
638              be  referred  to  from  the  main object. See Split Objects (aka
639              Debug Fission) in the DWARF5 standard.  This cannot be used with
640              MacOS  debug  or  GNU  debuglink, such files do not have a Split
641              Dwarf object file.
642
643
644       -x line5=s2l
645
646       --file-line5=s2l
647              Normally used only to test libdwarf  interfaces.   There  are  4
648              different  interface  function  sets and to ensure they all work
649              this option lets us choose which to use.  The options are  's2l'
650              (default,  Allows  standard  and two-level line tables using the
651              latest interface functions), 'std' (Allows standard single level
652              line  tables  using  the  latest  interface  functions),  'orig'
653              (allows DWARF2,3,4 original line tables using an older interface
654              function  set),  'orig2l'  (allows original line tables and some
655              two-level line tables using an older interface set).
656
657
658       --print-producers
659              -P When checking this adds the list  of  compilation-unit  names
660              seen for each producer-compiler to the printed checking results.
661
662       -q
663
664       --format-suppress-uri-msg
665              When  a  URI  is  found and translated while reading the command
666              line, be quiet about the URI translation. That is,  don't  print
667              the original and translated option strings.
668
669
670       -u cuname
671
672       --format-file=<file>
673              Turns  on  selective  printing of DIEs (printing like -i).  Only
674              the DIEs for a compilation unit that match the name provided are
675              printed.   If the compilation unit is ./a/b/c.c the 'cuname' you
676              provide should be c.c as the characters through the final  path-
677              separating  / are ignored.  If 'cuname' begins with a / then the
678              entire name string of a compilation unit  must  match  'cuname'.
679              The 'file' is read as a URI string.
680
681
682       -U
683
684       --format-suppress-uri
685              Turn  off  the  URI  interpretation  of the command line strings
686              entirely. Must be be on the command line before any URI  strings
687              encountered  to  be  fully  effective.   Likely something no one
688              needs to do.
689
690
691       -h
692
693       --help Show this man page.
694

SPLIT DWARF

696       With Split Dwarf (DWARF5) the main body of the DWARF is in  a  separate
697       file, often having the name suffix .dwp or .dwo .
698
699       For  example  if  /path/to/myapp.dwp  is  the  split-dwarf  object  and
700       /path/to/myapp   is   the    executable,    do    "dwarfdump    --file-
701       tied=/path/to/myapp  /path/to/myapp.dwp"   .   The tied file path names
702       the executable which has the .debug_addr  section  and  other  sections
703       that may be referred to from the .dwo/.dwp object.
704
705       See  Split  Object Files (sometimes called Debug Fission) in the DWARF5
706       standard, section 7.3.
707
708

FILES

710       dwarfdump
711
712        ./dwarfdump.conf
713
714       $(HOME)/.dwarfdump.conf
715
716       $(HOME)/dwarfdump.conf
717
718       <install-prefix>/lib/dwarfdump.conf
719

NOTES

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

BUGS

732       Support for DWARF5 is being completed but may not be complete.
733
734
735
736                                                                   DWARFDUMP()
Impressum