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       --print-frame (-f)
198              Print the .debug_frame section.
199
200       --print-eh-frame (-F)
201              Print the GNU .eh_frame section.
202
203
204       --print-info (-i)
205              Print the .debug_info section.
206
207
208       --print-fission (-I)
209              Print  any .gdb_index, .debug_cu_index, and .debug_tu_index sec‐
210              tions that exist in the object.
211
212
213       --print-gnu-debuglink
214              If the .gnu_debuglink section is present its content is printed.
215              If  the  .note.gnu.build-id  section  is  present its content is
216              printed.  If a DWARF containing file named by the content of the
217              .gnu_debuglink section exists the name will be printed.
218
219
220       --print-lines (-l)
221              Print  the  .debug_info  section and the associated line section
222              data.
223
224       --print-lines-short (-ls)
225              Print the .debug_info section and the  associated  line  section
226              data,  but  omit  the <pc> address.  Useful when a comparison of
227              line sections from objects with slight differences is required.
228
229
230       --print-macinfo (-m)
231              Print the .debug_macinfo (DWARF 2,3,4) and .debug_macro (DWARF5)
232              sections.  The  .debug_macro  reporting  may show output labeled
233              MACRONOTES, mentioning macro content that might be questionable.
234              See also --check-macros (-kw).
235
236
237       --print-ranges (-N)
238              Print  .debug_ranges  section.  Because the DWARF specifications
239              do not rule out garbage data areas in .debug_ranges (if they are
240              not referenced from .debug_info) any garbage bytes can result in
241              this print failing.
242
243
244       --print-pubnames (-p)
245              Print the .debug_pubnames section.
246
247
248       --print-str-offsets
249              Print the .debug_str_offsets section.
250
251
252       --print-aranges (-r)
253              Print the .debug_aranges section.
254
255       --print-strings (-s)
256              Print .debug_string section.
257
258
259       --print-static (-ta)
260              Print  the  IRIX  only  sections  .debug_static_funcs  and  .de‐
261              bug_static_vars.
262
263
264       --print-type (-y)
265              Print  the .debug_pubtypes section (and .debug_typenames, an SGI
266              IRIX-only section).
267
268
269       --version (-V)
270              Print a dwarfdump date/version string and stop.
271
272

CHECKING OPTIONS

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

OPTION MODIFIERS

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

LIMITING OUTPUT

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

OTHER OPTIONS

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

SPLIT DWARF

721       With Split Dwarf (DWARF5) the main body of the DWARF is in  a  separate
722       file, often having the name suffix .dwp or .dwo .
723
724       For  example  if  /path/to/myapp.dwp  is  the  split-dwarf  object  and
725       /path/to/myapp   is   the    executable,    do    "dwarfdump    --file-
726       tied=/path/to/myapp  /path/to/myapp.dwp"   .   The tied file path names
727       the executable which has the .debug_addr  section  and  other  sections
728       that may be referred to from the .dwo/.dwp object.
729
730       See  Split  Object Files (sometimes called Debug Fission) in the DWARF5
731       standard, section 7.3.
732
733

FILES

735       dwarfdump
736
737        ./dwarfdump.conf
738
739       $(HOME)/.dwarfdump.conf
740
741       $(HOME)/dwarfdump.conf
742
743       <install-prefix>/lib/dwarfdump.conf
744

NOTES

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

BUGS

757       Support for printing certain DWARF5 location expressions is incomplete.
758       Report problems to libdwarf-list -at- linuxmail -dot- org
759
760
761
762                                                                   DWARFDUMP()
Impressum