DWARFDUMP() DWARFDUMP() (NAME) dwarfdump - DWARF ELF (SYNOPSIS) dwarfdump [] (DESCRIPTION) dwarfdump DWARF . ( ) ( .debug_info ). split-dwarf ( DWARF5) Split Object Files DWARF5 7.3 . () . . dwarfdump DWARF . dwarfdump ( -a). ( ). dwarfdump DWARF . . . --format-dense (-d) . DWARF ( DW_OP_plus) . --format-dense DWARF (DW_OP*) --format-expr-ops-joined . dwarfdump.conf ( ) . . . (.debug_frame .eh_frame) ABI/ISA . () r0-r99 . DWARF : DWARF5 Split Dwarf ( --file-tied ). GNU debuglink (libdwarf DWARF --no-follow-debuglink .eh_frame ). macOS : DWARF (dwarfdump/libdwarf --no-follow- debuglink ). --suppress-debuglink-crc . -v ( -v -v --verbose ). DIE ( ) -G ( ) -M ( DW_FORM* ) -- DWARF . --format-registers (-R) r0-r1199 . --file-abi= (-x abi=) abi --print-frame (-f) --print-eh-frame (-F) . --print-frame (-f) --print-eh-frame (-F) abi ( ) . --format-registers -file-abi= . abi ( dwarfdump.conf) --file-abi=abi=generic100 --file-abi=abi=generic500 . abi mips x86 x86_64 ppc arm . --format-registers (-R) -file-abi= (-x abi=) dwarfdump . --file-name= (-x name=) dwarfdump "./dwarfdump.conf" "$HOME/dwarfdump.conf" "$HOME/.dwarfdump.conf" "/lib/dwarfdump.conf" . --show- dwarfdump-conf dwarfdump . --file-name= (-x name=) . (ERROR CHECKING) ( -k) ( "Check DWARF Integrity" ) (harmless errors) . libdwarf . dwarfdump . (DIE) ( DWARF ) --no-dup-attr-check libdwarf . -kD . DWARF zlib .zdebug_info dwarfdump . dwarfdump .zdebug_info ( ) ( ) .zdebug_ . URI (URI-STYLE INPUT STRINGS) URI URI . % . ( bash sh) getopt ( ). URI URI URI . URI . --format-producer=S&T (-cS&T) & --format-producer=S%26T . % ( ) %% ( %25 ). --format-suppress-uri (-U) ( URI) --format-suppress-uri-msg (-q) ( URI) URI . 'a b' 'a%20b' ( ' ). " %25 'a "b' 'a%20%25b' . URI getopt . URI % . URI (URI-STYLE OUTPUT) dwarfdump ( ) . uri xx% xx 0-9a-f . (%) '%25' . UTF-8 . (idempotent) dwarfdump . --format- suppress-sanitize . (PRINTING OPTIONS) --print-all (-a) . ( .debug_abbrev) ( -v). --print-abbrev (-b) .debug_abbrev. DWARF .debug_abbrev ( .debug_info ) . --print-loc (-c) . --print-debug-gnu .debug_gnu_pubnames .debug_gnu_typenames. --print-fission .gdb_index .debug_cu_index .debug_tu_index .gnu.debuglink .note.gnu.build-id. --print-gnu-debuglink .gnu_debuglink .note.gnu.build-id. --print-frame (-f) .debug_frame. --print-eh-frame (-F) GNU .eh_frame. --print-info (-i) .debug_info. --print-fission (-I) .gdb_index .debug_cu_index .debug_tu_index . --print-gnu-debuglink .gnu_debuglink . .note.gnu.build-id . DWARF .gnu_debuglink . --print-lines (-l) .debug_info . --print-lines-short (-ls) .debug_info . . --print-macinfo (-m) .debug_macinfo ( DWARF 2,3,4) .debug_macro ( DWARF5). .debug_macro MACRONOTES . --check-macros (-kw) . --print-ranges (-N) .debug_ranges. DWARF .debug_ranges ( .debug_info ) . --print-pubnames (-p) .debug_pubnames. --print-str-offsets .debug_str_offsets. --print-aranges (-r) .debug_aranges. --print-strings (-s) .debug_string. --print-section-allocations . malloc mmap . --print-static (-ta) IRIX .debug_static_funcs .debug_static_vars. --print-type (-y) .debug_pubtypes ( .debug_typenames SGI IRIX). --version (-V) dwarfdump . (CHECKING OPTIONS) --check-all (-ka) --check-frame-extended (-kxe) ( ). --check-abbrev (-kb) DIE. --check-macros (-kw) .debug_macro DWARF5 MACRONOTES ( MACRONOTES --print-macinfo ). .debug_macinfo .debug_macinfo MACRONOTES . --print-macinfo (-m) . --check-constants (-kc) debug_info. -check-show (-kd) / (producer) ( ). --check-silent-ks . --check-attr-dup (-kD) . DW_TAG DWARF . --check-pubnames (-ke) pubnames fde. --check-frame-info (-kf) FDE ( .debug_frame .eh_frame). --check-files-lines (-kF) . --check-gaps (-kg) .debug_info ( ). --check-unique (-kG) . ( ) . --check-summary (-ki) () . --check-loc (-kl) . --check-ranges (-km) . --check-aranges (-kM) aranges. --check-tag-attr (-kr) - (tag-attr) DIE DIE. DWARF-CHECK . . . . DWARF-CHECK -C (--format-extensions) . -kuf (--check-usage-extended) . --check-usage (-ku) -kr DWARF-CHECK . --check-attr-encodings (-kE) debug_info LEB128 . --check-forward-refs (-kR) DIE DW_AT_specification ( ). --check-self-refs (-kS) DIE . --check-tag-tag (-kt) - - DIE. . . -C (--format- extensions) . --check-frame-basic (-kx) .debug_frame .eh_frame. --check-frame-extended (-kxe) .debug_frame .eh_frame. . --check-type (-ky) type_offset ( ) DW_AT_decl_file . (MISCELLANEOUS OPTIONS) --allocate-via-mmap libdwarf malloc mmap . --suppress-de-alloc-tree libdwarf . valgrind -fsanitize . libdwarf . --suppress-debuglink-crc libdwarf crc debuglink . debuglink buildid . --no-follow-debuglink dwarfdump libdwarf .gnu.debuglink .gnu.note.buildid dSYM macOS . (OPTION MODIFIERS) --format-extensions (-C) --check-tag-tag (-kt) --check-tag-attr (-kr) . - - ( ). . -kuf (--check-usage-extended) --check-tag- attr (-kr) --check-usage (-ku) . -kuf (--check-usage-extended) . --format-dense (-d) DIE DIE () TAG . DIE ( grep) DIE . --format-suppress-offsets (-D) . .debug_info TAG . pubnames ( ) . . --format-ellipsis (-e) . DW_TAG_foo foo . DIE . --format-global-offsets (-G) . --format-limit= (-H number) .debug_info 'number' . FDE 'number' FDE CIE ( -v ) 'number' CIE . : '--format-limit=1'. --format-attr-name (-M) (FORM) . -v ( ) . --format-suppress-lookup (-n) . . . . --file-output= (-Ofile=) ( ). --format-suppress-data (-Q) ( ). --format-suppress-sanitize . " URI" . --format-suppress-uri (-U) URI . " URI" . --format-registers (-R) ABI ( R999) ABI '-x abi=ppc' '--file-abi=ppc' . --verbose (-v) . -v ( ) . -v DIE rnglists ( -i) (-l) (-f, -F) gdb_index ( -I) . -v . --show-dwarfdump-conf dwarfdump.conf . (LIMITING OUTPUT) / . -H --format-limit . FDE CIE .debug_frame .eh_frame . --search (-S) DIE () . . ( 'match' 'match' 'any' 'regex' ). --search (-S) .debug_info . --search (-S) . URI (bash, sh, ...) ()getopt URI UTF8 . (regex) POSIX Basic Regular Expressions (PBRE) () PBRE () . DWARF -i . -S -Sv ( ). --search-match= (-Smatch=string) --search-match-count= (-Svmatch=string) DIE 'string' . CU . 'string' URI . (Sv) . --search-any= (-Sany=string) --search-any-count= (-Svany=string) DIE 'string' ( ) . CU . 'string' URI . (Sv) . --search-regex=string (-Sregex=string) --search-regex-count=string (-Svregex=string) DIE 'string' . CU . 'string' URI . (Sv) . getopt(3) . URI . 'a b' -S 'a%20b' . " %25 'a "b' 'a%20%25b' ( ' ). URI getopt. --search-any (-Sany) --regex-any (-Sregex) . --search-print (-W) -S -S . v -S -W -S : --search-match-count=string DIE -S . -S match=string1 -W --search-match=string1 --search-print-tree DIE --search-match . -S match=string2 -Wp --search-match=string2 --search-print-parent DIE -S . -S match=string3 -Wc --search-match=string3 --search-print-children DIE -S . --format-gcc (-cg) 'GNU' -cs . --format-snc (-cs) 'SN' -cg . --format-producer= (-c) 'name' ( ). 'name' URI . (OTHER OPTIONS) -x name= --file-name=/p/a/t/h.conf (-xname=/p/a/t/h.conf) dwarfdump.conf . URI . -x abi=ppc --file-abi=ppc abi ( dwarfdump.conf) ( ppc ). abi URI . --format-group-number= (-x groupnumber=) DWARF5 split dwarf ( .debug_info.dwo) DWARF ( .debug_info) --format-group-number=2 dwo . --file-tied= dwo ( dwo/dwp ). -x tied=/t/i/depath --file-tied=/t/i/depath .dwo .dwp . /path/to/myapp.dwp split-dwarf /path/to/myapp "dwarfdump --file- tied=/path/to/myapp /path/to/myapp.dwp" . .debug_addr . Split Objects ( Debug Fission) DWARF5 . macOS GNU debuglink Split Dwarf . -x line5=s2l --file-line5=s2l libdwarf . . : 's2l' ( ) 'std' ( ) 'orig' ( DWARF2,3,4 ) 'orig2l' ( ). --print-producers -P - . -q --format-suppress-uri-msg URI URI . -u cuname --format-file= DIE ( -i). DIE . ./a/b/c.c 'cuname' c.c / . 'cuname' / 'cuname' . 'file' URI . -U --format-suppress-uri URI . URI . . -h --help . DWARF (SPLIT DWARF) DWARF (DWARF5) DWARF dwp. dwo. . /path/to/myapp.dwp split- dwarf /path/to/myapp "dwarfdump --file-tied=/path/to/myapp /path/to/myapp.dwp" . .debug_addr dwo/.dwp. . Split Object Files ( Debug Fission ) DWARF5 7.3 . (FILES) dwarfdump ./dwarfdump.conf $(HOME)/.dwarfdump.conf $(HOME)/dwarfdump.conf /lib/dwarfdump.conf (NOTES) 2.2.0 dwarfdump DW_FORM_block2 ( ) UTF8 . 0x (:) . ( ) "Block As Quoted String " dwarfdump . DW_FORM_data1 . dwarfdump . : "DW_AT_const_value 176(as signed = -80)". DWARF dwarfdump dwarfdump DIE . (BUGS) DWARF5 . libdwarf-list -at- linuxmail -dot- org . DWARFDUMP()