1DWARFDUMP() DWARFDUMP()
2
3
4
6 dwarfdump - dumps DWARF debug information of an ELF object
7
9 dwarfdump [options] objectfilename
10
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
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
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
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
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
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
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
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
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
752 dwarfdump
753
754 ./dwarfdump.conf
755
756 $(HOME)/.dwarfdump.conf
757
758 $(HOME)/dwarfdump.conf
759
760 <install-prefix>/lib/dwarfdump.conf
761
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
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()