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

CHECKING OPTIONS

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

OPTION MODIFIERS

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

LIMITING OUTPUT

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

OTHER OPTIONS

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

SPLIT DWARF

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

FILES

746       dwarfdump
747
748        ./dwarfdump.conf
749
750       $(HOME)/.dwarfdump.conf
751
752       $(HOME)/dwarfdump.conf
753
754       <install-prefix>/lib/dwarfdump.conf
755

NOTES

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

BUGS

768       Support for printing certain DWARF5 location expressions is incomplete.
769       Report problems to libdwarf-list -at- linuxmail -dot- org
770
771
772
773                                                                   DWARFDUMP()
Impressum