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  .de‐
16       bug_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 ig‐
29       nored 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       As  of December 2020 DWARF expressions are broken out to print each ex‐
44       pression (DW_OP_plus for example) in a block on a  separate  line.   To
45       restore the previous behavior, sort of like --format-dense but only ap‐
46       plying to blocks of DWARF expression operators (DW_OP*).  the --format-
47       expr-ops-joined  is  useful.   If  the  option  is placed in the dwarf‐
48       dump.conf file (see the file itself for the format) it will apply with‐
49       out needing to put it on the command line.
50
51
52       Not all sections actually exist in any given object file.
53
54       The  output  format may change from release to release, so it is unwise
55       to depend too heavily on the format.
56
57       Frame information (.debug_frame and .eh_frame) is heavily dependent  on
58       the  ABI/ISA  of  the  object file.  By default we use a generic set of
59       register names handling up to 100 registers named r0-r99.
60
61       As of 2020 there are three different ways compiler writers separate the
62       DWARF  information  from  an  executable/shared-object.   One is DWARF5
63       Split Dwarf (the --file-tied option is useful for  these).  Another  is
64       GNU  debuglink  (libdwarf  automatically finds the DWARF when given the
65       name of the executable, use --no-follow-debuglink to suppress this  and
66       make  possible  printing the backtrace data in section .eh_frame).  The
67       third way is on MacOS: the debug DWARF is in a separate object  (dwarf‐
68       dump/libdwarf  automatically  find it if it is present, --no-follow-de‐
69       buglink suppresses this finding).
70
71       In many cases one can get additional detail by specifying -v (sometimes
72       -v -v gets even more, see the --verbose discussion below).  When print‐
73       ing DIEs (Debugging Information Entries) the options -G (showing global
74       offsets)  and -M (naming the DW_FORM* of attributes) (or their -- coun‐
75       terparts) can be a great aid to understanding DWARF..
76
77       The --format-registers (-R) option uses  a  built-in  generic  register
78       name set handling up to 1200 registers named r0-r1199.
79
80       The --file-abi=<abi> (-x abi=<abi>) description below shows how to name
81       an abi and use that to  guide  the  --print-frame (-f)  or  --print-eh-
82       frame (-F) processing.
83
84       One  of --print-frame (-f) or --print-eh-frame (-F) implies lots of abi
85       (register names, register counts) in the  output,  but  sections  other
86       than frame sections may also need register names.
87
88
89       Unless  the cpu for the object file being dumped has many registers, do
90       not use --format-registers or -file-abi=<abi> as  those  can  be  need‐
91       lessly slow dumping frame sections. Instead, use the correct abi (if it
92       exists   in   dwarfdump.conf)   or   a   generic   such   as    --file-
93       abi=abi=generic100 or --file-abi=abi=generic500
94        .
95
96       The  most useful abi choices are likely mips or x86 or x86_64 or ppc or
97       arm
98        .  Without --format-registers (-R)  or  -file-abi=<abi> (-x abi=<abi>)
99       dwarfdump  uses  a  compiled-in  generic  set of register names.  If no
100       --file-name=<path> (-x name=<path>)  is  given,  dwarfdump  looks   for
101       "./dwarfdump.conf",   "$HOME/dwarfdump.conf",  "$HOME/.dwarfdump.conf",
102       "<install-prefix>/lib/dwarfdump.conf" and takes  the  first  it  finds.
103       Use  the --show-dwarfdump-conf option  to see what dwarfdump finds.  If
104       one or more --file-name=<path> (-x name=<path>) is given  the  last  of
105       these is used and all other such files are ignored.
106
107       Some  checking  (  -k) options (See "Check DWARF Integrity" in the help
108       output) print so-called harmless errors.   These  are  compiler  errors
109       that  do not cause any known problem and are only detected inside libd‐
110       warf itself.  These are difficult to properly report in  dwarfdump  and
111       any  error  strings  may not appear close to the time the error was en‐
112       countered.
113
114       If zlib compression was used on the DWARF sections in the  object  file
115       being  read the real section names such as .zdebug_info etc will be re‐
116       ported by dwarfdump.  When dwarfdump says something is at offset 55  of
117       .zdebug_info  (or the like) keep in mind that the offset applies to the
118       uncompressed section (in memory), not the .zdebug_  compressed  section
119       in objectfilename.
120

URI-STYLE INPUT STRINGS

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

URI-STYLE OUTPUT (printing)

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

PRINTING OPTIONS

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

CHECKING OPTIONS

295       --check-all (-ka)
296              Turns  on  all   checking   options   except   --check-frame-ex‐
297              tended (-kxe)  (which might be slow enough one might not want to
298              use it routinely.)
299
300
301       --check-abbrev (-kb)
302              Checks for certain abbreviations  section  errors  when  reading
303              DIEs.
304
305
306       --check-macros (-kw)
307              Checks  for  issues in DWARF5 .debug_macro and identifies issues
308              that might be questionable but not necessarily errors  with  the
309              string MACRONOTES (and reports some MACRONOTES that --print-mac‐
310              info will not show).  It also checks  .debug_macinfo,  but  less
311              thoroughly  and  never emits MACRONOTES for .debug_macinfo.  See
312              also  --print-macinfo (-m).   (regrettably  inconsistent  spell‐
313              ing...).
314
315
316       --check-constants (-kc)
317              Checks for errors in constants in debug_info.
318
319
320       -check-show (-kd)
321              Turns  on full reporting of error totals per producer.  (the de‐
322              fault shows less detail).
323
324       --check-silent-ks
325              Turns off some verbose checking detection.
326
327
328       --check-attr-dup (-kD)
329              Turns on reporting of  duplicated  attributes.   Duplicated  at‐
330              tributes on a single DW_TAG are improper DWARF, but at least one
331              compiler emitted such.
332
333       --check-pubnames (-ke)
334              Turns on reading pubnames and checking for fde errors.
335
336       --check-frame-info (-kf)
337              Turns on checking for FDE errors (.debug_frame and .eh_frame).
338
339       --check-files-lines (-kF)
340              Turns on checking for line table errors.
341
342       --check-gaps (-kg)
343              Turns on checking for unused gaps in .debug_info (these gaps are
344              not an error, just a waste of space).
345
346       --check-unique (-kG)
347              Print  only  unique errors. Error lines are simplified (hex num‐
348              bers removed, for example) and when a given message string would
349              otherwise appear again it is suppressed.
350
351       --check-summary (-ki)
352              Causes  a summary of checking results per compiler (producer) to
353              be printed at the end.
354
355
356       --check-loc (-kl)
357              Turns on locations list checking.
358
359       --check-ranges (-km)
360              Turns on checking of ranges.
361
362       --check-aranges (-kM)
363              Turns on checking of aranges.
364
365
366       --check-tag-attr (-kr)
367              Turns on DIE tag-attr combinations checking,  looking  for  sur‐
368              prising  attributes  for DIE tags.  Prints a DWARF-CHECK message
369              for each such found.  It does not report  common  extensions  as
370              errors.   A  summary of usage is printed at the end.  Common ex‐
371              tensions to the standard are allowed as if standard.  See the -C
372              (--format-extensions) option to show common extensions as DWARF-
373              CHECK messages.  See -kuf (--check-usage-extended) to add  addi‐
374              tional details to the summary report.
375
376
377       --check-usage (-ku)
378              The  same  as -kr except only the summary is printed at the end,
379              the detailed DWARF-CHECK messages per instance are not printed.
380
381
382       --check-attr-encodings (-kE)
383              Checks the integer encoding representation of constant FORMs  in
384              debug_info,  computing whether these integer values could fit in
385              fewer bytes if represented in LEB128 and reports the space  sav‐
386              ing that would achieve.
387
388
389       --check-forward-refs (-kR)
390              Turns on reading DIEs and checking for forward declarations from
391              DW_AT_specification attributes.  (which are not an error but can
392              be a source of inefficiency for debuggers).
393
394       --check-self-refs (-kS)
395              Turns on checking DIE references for circular references.
396
397       --check-tag-tag (-kt)
398              Turns  on  tag-tag combinations checking, looking for surprising
399              parent-child DIE relationships.  It does not report  common  ex‐
400              tensions  as  errors.  Common extensions to the standard are al‐
401              lowed as if standard.  See the -C  (--format-extensions)  option
402              to show common extensions as errors.
403
404
405       --check-frame-basic (-kx)
406              Turns on basic frames checking for .debug_frame and .eh_frame).
407
408       --check-frame-extended (-kxe)
409              Turns  off basic check_frames and turns on extended frame check‐
410              ing for .debug_frame and .eh_frame.  This option can be slow.
411
412
413       --check-type (-ky)
414              Turns on type_offset checking (ensuring local attribute  offsets
415              refer  to  what  they  should) and that DW_AT_decl_file and some
416              other offsets refer to appropriate locations.
417
418

OPTION MODIFIERS

420       --format-extensions (-C)
421              This  is  a  secondary  option  after  --check-tag-tag (-kt)  or
422              --check-tag-attr (-kr)  or Normally when checking for tag-tag or
423              tag-attribute combinations both the  standard  combinations  and
424              some  common  extensions  are allowed (not reported).  With this
425              option the extensions are taken out of the class of allowed com‐
426              binations.
427
428
429       -kuf (--check-usage-extended)
430              This  modifies  --check-tag-attr (-kr) or --check-usage (-ku) to
431              print additional details in the summary.  Add the -kuf (--check-
432              usage-extended) before or after the option it modifies.
433
434
435       --format-dense (-d)
436              When  printing  DIEs, put all the attributes for each DIE on the
437              same (long) line as the TAG. This makes searching for DIE infor‐
438              mation  (as  with grep) much simpler as the entire DIE is on one
439              line.
440
441
442       --format-suppress-offsets (-D)
443              Turns off the display of section offsets and attribute values in
444              printed  output.  So the .debug_info output is just TAGs and At‐
445              tributes.  For pubnames (and the like) it removes  offsets  from
446              the  output.   For  locations  lists it removes offsets from the
447              output, but that is useless since  the  attribute  values  don't
448              show so neither does the location data.
449
450
451       --format-ellipsis (-e)
452              Turns  on  truncation  of  attribute  and tag names. For example
453              DW_TAG_foo becomes foo. Not compatible with checking, only  use‐
454              ful for printing DIEs.
455
456
457       --format-global-offsets (-G)
458              When printing, add global offsets to the offsets printed.
459
460
461       --format-limit=<num> (-H number)
462              When  printing  or  checking  .debug_info,  this  terminates the
463              search after 'number' compilation units. When printing frame in‐
464              formation  this terminates the FDE reporting after 'number' FDEs
465              and the CIE reporting (which occurs if one adds -v) after  'num‐
466              ber' CIEs. Example '--format-limit=1'
467
468
469       --format-attr-name (-M)
470              When  printing,  show  the  FORM for each attribute.  If a -v is
471              added (or more than one) then details of  any  form  indirection
472              are also shown.
473
474
475       --format-suppress-lookup (-n)
476              When  printing  frames,  this  turns off the search for function
477              names in inner scopes.  Unless the language used  to  build  the
478              object  file supports function definitions in inner scopes there
479              is no point in looking for function names in inner scopes.   And
480              a  really  large  object  the search can take more time than one
481              wants to wait.  This option suppresses the inner scope search.
482
483
484       --file-output=<path> (-Ofile=<path>)
485              The <path> will be used as the file name for output  instead  of
486              writing to stdout (stdout is the default).
487
488
489       --format-suppress-data (-Q)
490              Suppresses  section  data  printing  (set  automatically  with a
491              checking option).
492
493
494       --format-suppress-sanitize
495              Suppresses the default string-printing translations so non-ascii
496              and  non-printable  characters  from the object file are printed
497              as-is.  See "URI-STYLE OUTPUT" above.
498
499
500       --format-suppress-uri (-U)
501              Suppresses the default URI translation of following  options  on
502              the command line.  See "URI-STYLE INPUT STRINGS" above.
503
504
505       --format-registers (-R)
506              When  printing  frames for ABIs with lots of registers, this al‐
507              lows up to 1200 registers to be named (like R999) without choos‐
508              ing  an  ABI  with,  for  example '-x abi=ppc' or, equivalently,
509              '--file-abi=ppc'
510
511
512       --verbose (-v)
513              Increases the detail shown when printing.  In some sections, us‐
514              ing  more  -v  options will increase the detail (one to four are
515              useful) or may change the report to show, for example,  the  ac‐
516              tual  line-data-commands  instead  of  the resultant line-table.
517              Two to four -v options make a difference when printing DIEs  and
518              rnglists (-i), lines (-l), frames (-f,-F), gdb_index(-I).  Addi‐
519              tional -v beyond four do not currently add-to or change the out‐
520              put.
521
522       --show-dwarfdump-conf
523              Shows  what  files  are checked to find a dwarfdump.conf and its
524              register naming tables.
525
526

LIMITING OUTPUT

528       The simplest limiting option is to stop the examination/printing  after
529       <num>  compilation  units.  See -H and  --format-limit above.  This op‐
530       tion also limits the number of FDEs and  CIEs  printed  from  any  .de‐
531       bug_frame or .eh_frame section.
532
533
534       The  --search (-S) options print information about the compilation unit
535       and DIE where the string(s) appear.   These  cannot  be  combined  with
536       other  options.   At most one of each of the following is effective (so
537       for example one can only have one 'match', but one can have a  'match',
538       an  'any',  and  a  'regex').  Any --search (-S) causes the .debug_info
539       section to be inspected.   No  checking  options  or  printing  options
540       should  be  supplied with --search(-S) options.  The strings should use
541       URI-style to avoid any conflicts with the command-line parser  applica‐
542       ble  (bash,  sh,  ...)   or getopt(), as well as using URI to deal with
543       searching for strings in non-ASCII such as French, (etc)  or  the  now-
544       nearly-universal UTF8.
545
546       These are particularly useful when the amount of DWARF information out‐
547       put by -i is multiple gigabytes of data.
548
549       If -Sv used instead of -S , the number of occurrences is printed.  (see
550       below for an example).
551
552
553       --search-match=<string> (-Smatch=string)
554
555       --search-match-count=<string> (-Svmatch=string)
556              When  printing  DIEs  for  each tag value or attribute name that
557              matches 'string' exactly print the compilation unit  information
558              and  its  section  offset.  Any CU with no match is not printed.
559              The 'string' is read as a URI string.  The count (Sv)  form  re‐
560              ports the count of occurrences.
561
562
563       --search-any=<string> (-Sany=string)
564
565       --search-any-count=<string> (-Svany=string)
566              When  printing  DIEs  for  each tag value or attribute name that
567              contains 'string' somewhere in the tag or attribute (case insen‐
568              sitive)  print  the compilation unit information and its section
569              offset.  Any CU with no match is not printed.  The  'string'  is
570              read  as a URI string.  The count (Sv) form reports the count of
571              occurrences.
572
573
574       --search-regex=string (-Sregex=string)
575
576       --search-regex-count=string (-Svregex=string)
577              When printing DIEs for each tag value or  attribute  name  where
578              the  'string'  regular  expression matches print the compilation
579              unit information and its section offset.  Any CU with  no  match
580              is  not  printed.   The  'string'  is read as a URI string.  The
581              count (Sv) form reports the count of occurrences.
582
583
584       The string cannot have spaces or other characters which are  meaningful
585       to  getopt(3) and the shell will strip off quotes and other characters.
586       So the string is assumed to be in URI  style  and  is  translated.   In
587       other  words,  to match 'a b' make the -S string 'a%20b' Instead of es‐
588       caping " quotes in the string, type %25, as in
589        'a "b' should be typed 'a%20%25b' (the ' are for exposition here,  not
590       part  of  the  strings).  Any characters can be typed in URI style, not
591       just characters which are problematic to the shell or getopt.
592
593       The --search-any (-Sany) and --regex-any (-Sregex) options are only us‐
594       able if regular-expression library functions required are found at con‐
595       figure time.
596
597       The --search-print (-W) option is a modifier to the -S option, and  in‐
598       creases  the  amount of output -S prints.  An example v modifier to the
599       -S option is shown below.  And we show the -W in context with a -S  op‐
600       tion.
601
602
603       --search-match-count=string
604              Prints information about the DIEs that -S matches and prints the
605              count of occurrences.
606
607
608       -S match=string1 -W
609
610
611       --search-match=string1 --search-print-tree
612              Prints the parent tree and the children tree for the  DIEs  that
613              --search-match  matches.
614
615
616       -S match=string2 -Wp
617
618
619       --search-match=string2 --search-print-parent
620              Prints the parent tree for the DIEs that -S matches.
621
622
623       -S match=string3 -Wc
624
625       --search-match=string3 --search-print-children
626              Prints the children tree for the DIEs that -S matches.
627
628
629       --format-gcc (-cg)
630              Restricts  printing/checking  to compilers whose producer string
631              starts with 'GNU' and turns off -cs.
632
633
634       --format-snc (-cs)
635              Restricts printing/checking to compilers whose  producer  string
636              starts with 'SN' and turns off -cg.
637
638
639       --format-producer=<name> (-c<name>)
640              Restricts  printing/checking  to compilers whose producer string
641              contains 'name' (not case sensitive).  The 'name' is read  as  a
642              URI string.
643
644
645

OTHER OPTIONS

647       -x name=<path>
648
649       --file-name=/p/a/t/h.conf (-xname=/p/a/t/h.conf)
650              The file path given is the name of a file assumed to be a dwarf‐
651              dump.conf-like file.  The file path is read as a URI string.
652
653
654       -x abi=ppc
655
656       --file-abi=ppc
657              Selects the abi (from a  dwarfdump.conf  file)  to  be  used  in
658              printing  frame information (here using ppc as an example).  The
659              abi is read as a URI string.
660
661
662       --format-group-number=<n> (-x groupnumber=<n>)
663              For an object file with both DWARF5 split dwarf (.debug_info.dwo
664              for example)  and ordinary DWARF sections (.debug_info for exam‐
665              ple) in the single object file one must use  --format-group-num‐
666              ber=2 to print the dwo sections.  Adding --file-tied=<path> nam‐
667              ing the object file ties in the non-dwo skeleton  sections  (the
668              <path>  is to the skeleton object file when the main object file
669              is dwo/dwp).
670
671
672       -x tied=/t/i/depath
673
674       --file-tied=/t/i/depath
675              Used when opening a main object that is a  .dwo  or  .dwp  file.
676              For  example if /path/to/myapp.dwp is the split-dwarf object and
677              /path/to/myapp  is  the  executable,   do   "dwarfdump   --file-
678              tied=/path/to/myapp  /path/to/myapp.dwp"   .  The tied file path
679              names the executable which has the .debug_addr section that  may
680              be  referred to from the main object. See Split Objects (aka De‐
681              bug Fission) in the DWARF5 standard.  This cannot be  used  with
682              MacOS  debug  or  GNU  debuglink, such files do not have a Split
683              Dwarf object file.
684
685
686       -x line5=s2l
687
688       --file-line5=s2l
689              Normally used only to test libdwarf  interfaces.   There  are  4
690              different  interface  function  sets and to ensure they all work
691              this option lets us choose which to use.  The options are  's2l'
692              (default,  Allows  standard  and two-level line tables using the
693              latest interface functions), 'std' (Allows standard single level
694              line  tables  using the latest interface functions), 'orig' (al‐
695              lows DWARF2,3,4 original line tables using  an  older  interface
696              function  set),  'orig2l'  (allows original line tables and some
697              two-level line tables using an older interface set).
698
699
700       --print-producers
701              -P When checking this adds the list  of  compilation-unit  names
702              seen for each producer-compiler to the printed checking results.
703
704       -q
705
706       --format-suppress-uri-msg
707              When  a  URI  is  found and translated while reading the command
708              line, be quiet about the URI translation. That is,  don't  print
709              the original and translated option strings.
710
711
712       -u cuname
713
714       --format-file=<file>
715              Turns  on  selective  printing of DIEs (printing like -i).  Only
716              the DIEs for a compilation unit that match the name provided are
717              printed.   If the compilation unit is ./a/b/c.c the 'cuname' you
718              provide should be c.c as the characters through the final  path-
719              separating  / are ignored.  If 'cuname' begins with a / then the
720              entire name string of a compilation unit  must  match  'cuname'.
721              The 'file' is read as a URI string.
722
723
724       -U
725
726       --format-suppress-uri
727              Turn  off the URI interpretation of the command line strings en‐
728              tirely. Must be be on the command line before  any  URI  strings
729              encountered  to  be  fully  effective.   Likely something no one
730              needs to do.
731
732
733       -h
734
735       --help Show this man page.
736

SPLIT DWARF

738       With Split Dwarf (DWARF5) the main body of the DWARF is in  a  separate
739       file, often having the name suffix .dwp or .dwo .
740
741       For  example  if  /path/to/myapp.dwp  is  the  split-dwarf  object  and
742       /path/to/myapp   is   the    executable,    do    "dwarfdump    --file-
743       tied=/path/to/myapp  /path/to/myapp.dwp"   .   The tied file path names
744       the executable which has the .debug_addr  section  and  other  sections
745       that may be referred to from the .dwo/.dwp object.
746
747       See  Split  Object Files (sometimes called Debug Fission) in the DWARF5
748       standard, section 7.3.
749
750

FILES

752       dwarfdump
753
754        ./dwarfdump.conf
755
756       $(HOME)/.dwarfdump.conf
757
758       $(HOME)/dwarfdump.conf
759
760       <install-prefix>/lib/dwarfdump.conf
761

NOTES

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

BUGS

774       Support for printing certain DWARF5 location expressions is incomplete.
775       Report problems to libdwarf-list -at- linuxmail -dot- org
776
777
778
779                                                                   DWARFDUMP()
Impressum