Provided by: dwarfdump_20210528-1build2_amd64 bug

NAME

       dwarfdump - dumps DWARF debug information of an ELF object

SYNOPSIS

       dwarfdump [options] objectfilename

DESCRIPTION

       The  dwarfdump command prints or checks DWARF sections as requested by specific options.  With no options
       (but with the required objectfilename  )  all  sections  print  (but  some  sections  cannot  be  printed
       independently  safely, so those are only printed at offsets where the .debug_info section refers to those
       sections).

       For split-dwarf (DWARF5) object files see Split Object Files, DWARF5 section 7.3.

       Nearly all options are available in the traditional (single-letter) form and in a long-options form  with
       meaningful names.  New options are only in the long-options form.

       With no options dwarfdump prints a basic set of DWARF section information.  If any option is given on the
       command  line the basic set is ignored and one must tell dwarfdump what to print or check (for example by
       adding the -a option).

       As of June 2011 the printing options and the checking options are mutually exclusive (if checking options
       are selected the section details are not printed). When errors are encountered dwarfdump does attempt  to
       print sufficient context so that one can understand exactly where the error is in the DWARF.  This change
       makes checking really large object files much easier.

       The format is intended to be human readable.  If a script is to parse the output, the --format-dense (-d)
       option is useful.

       As of December 2020 DWARF expressions are broken out to print each expression (DW_OP_plus for example) in
       a  block  on  a  separate  line.   To restore the previous behavior, sort of like --format-dense but only
       applying to blocks of DWARF expression operators (DW_OP*).  the --format-expr-ops-joined is  useful.   If
       the  option  is  placed  in  the  dwarfdump.conf  file (see the file itself for the format) it will apply
       without needing to put it on the command line.

       Not all sections actually exist in any given object file.

       The output format may change from release to release, so it is  unwise  to  depend  too  heavily  on  the
       format.

       Frame  information  (.debug_frame  and .eh_frame) is heavily dependent on the ABI/ISA of the object file.
       By default we use a generic set of register names handling up to 100 registers named r0-r99.

       As of 2020 there are three different ways  compiler  writers  separate  the  DWARF  information  from  an
       executable/shared-object.   One  is  DWARF5  Split  Dwarf  (the  --file-tied option is useful for these).
       Another is GNU debuglink (libdwarf automatically finds the DWARF when given the name of  the  executable,
       use  --no-follow-debuglink  to  suppress  this  and  make possible printing the backtrace data in section
       .eh_frame).  The third way is on MacOS: the debug DWARF  is  in  a  separate  object  (dwarfdump/libdwarf
       automatically find it if it is present, --no-follow-debuglink suppresses this finding).

       In  many  cases  one  can get additional detail by specifying -v (sometimes -v -v gets even more, see the
       --verbose discussion below).  When printing DIEs (Debugging Information Entries) the options -G  (showing
       global  offsets) and -M (naming the DW_FORM* of attributes) (or their -- counterparts) can be a great aid
       to understanding DWARF..

       The --format-registers (-R) option uses a  built-in  generic  register  name  set  handling  up  to  1200
       registers named r0-r1199.

       The  --file-abi=<abi> (-x abi=<abi>) description below shows how to name an abi and use that to guide the
       --print-frame (-f) or --print-eh-frame (-F) processing.

       One of --print-frame (-f) or --print-eh-frame (-F) implies lots of abi (register names, register  counts)
       in the output, but sections other than frame sections may also need register names.

       Unless  the  cpu  for  the  object file being dumped has many registers, do not use --format-registers or
       -file-abi=<abi> as those can be needlessly slow dumping frame sections. Instead, use the correct abi  (if
       it exists in dwarfdump.conf) or a generic such as --file-abi=abi=generic100 or --file-abi=abi=generic500
        .

       The most useful abi choices are likely mips or x86 or x86_64 or ppc or arm
        .   Without  --format-registers (-R)  or  -file-abi=<abi> (-x abi=<abi>)  dwarfdump  uses  a compiled-in
       generic set of register names.  If no --file-name=<path> (-x name=<path>) is given, dwarfdump  looks  for
       "./dwarfdump.conf",          "$HOME/dwarfdump.conf",          "$HOME/.dwarfdump.conf",         "<install-
       prefix>/lib/dwarfdump.conf" and takes the first it finds.  Use the --show-dwarfdump-conf option   to  see
       what  dwarfdump  finds.  If one or more --file-name=<path> (-x name=<path>) is given the last of these is
       used and all other such files are ignored.

       Some checking ( -k) options (See "Check DWARF Integrity" in the help  output)  print  so-called  harmless
       errors.   These  are  compiler  errors  that  do not cause any known problem and are only detected inside
       libdwarf itself.  These are difficult to properly report in dwarfdump  and  any  error  strings  may  not
       appear close to the time the error was encountered.

       If  zlib  compression was used on the DWARF sections in the object file being read the real section names
       such as .zdebug_info etc will be reported by dwarfdump.  When dwarfdump says something is at offset 55 of
       .zdebug_info (or the like) keep in mind that the offset applies to the uncompressed section (in  memory),
       not the .zdebug_ compressed section in objectfilename.

URI-STYLE INPUT STRINGS

       The  <objectfilename> and all the options taking name strings look for URIs and translate the URI strings
       to characters by default.  So any single % character is treated as if the following  two  characters  are
       hex digits representing the underlying true character.  Various characters are meaningful to shells (such
       as bash or sh) and to getopt (such as the space character) If the URI translation does anything it prints
       the  before  and  after  of  the  URI translation on standard output, so inspection of the first lines of
       output will show if URI did anything.  The actual options themselves are assumed to be  non-URI.   So  in
       the  option  --format-producer=S&T (-cS&T)  the  &  character  might  cause  input  issues  so  --format-
       producer=S%26T should be used instead.  To actually input a single % character (in a name, for  example),
       double it to %% on the command line (or use %25).

       Options  --format-suppress-uri (-U)  (turning  off URI interpretation) and --format-suppress-uri-msg (-q)
       (making finding URI sequences silent) give finer control of URI interpretation.

       As an example, to get a string 'a b' make the string 'a%20b' (here the quote (') is  for  exposition  not
       part  of  the  string, though quote is certainly problematic in a name).  Instead of escaping " quotes in
       the string, type %25, as in 'a "b' should be typed 'a%20%25b'.  Any characters can be typed in URI style,
       not just characters which are problematic to the shell or getopt.  We strongly suggest you not type  URI-
       style  characters  where such are not needed or use the % character itself in command line strings unless
       you must.

URI-STYLE OUTPUT (printing)

       Dwarfdump translates any characters in strings which are not ordinary printable ASCII (and some which are
       ASCII) in the reverse of the previous section.  It prints into a uri-style output in the form %xx,  where
       xx are hex digits in the form of ASCII 0-9a-0f.  The percent character(%) is printed as '%25'

       This  is  a clumsy way to deal with UTF-8 strings and sensible way to deal with the low ASCII values that
       on many systems cause one's terminal to behave oddly. Such translations are not idempotent  so  dwarfdump
       avoids  doing  the translation more than once on any string.  See option --format-suppress-sanitize below
       to eliminate the output transformation.

PRINTING OPTIONS

       --print-all (-a)
              Print each section as independently as possible. Sections that can safely be printed independently
              (like .debug_abbrev) have relevant info printed in the report (sometimes dependent on -v).

       --print-abbrev (-b)
              Print the .debug_abbrev section. Because the DWARF specifications do not  rule  out  garbage  data
              areas  in .debug_abbrev (if they are not referenced from .debug_info) any garbage bytes can result
              in this print failing.

       --print-loc (-c)
              Print locations lists.

       --print-debug-gnu
              Print  the .debug_gnu_pubnames and .debug_gnu_typenames sections.

       --print-fission
              Print  the .gdb_index, .debug_cu_index,
               .debug_tu_index, .gnu.debuglink,
                and .note.gnu.build-id sections.

       --print-gnu-debuglink
              Print .gnu_debuglink and .note.gnu.build-id sections

       --elf (-E)
              prints, for Elf objects, object file details.  See the "Print ELF Section Headers" section of  the
              help  file  for  additional  choices  on  elf printing.  If libdwarf or dwarfdump is built without
              libelf this and related options are not available.

       --print-frame (-f)
              Print the .debug_frame section.

       --print-eh-frame (-F)
              Print the GNU .eh_frame section.

       --print-info (-i)
              Print the .debug_info section.

       --print-fission (-I)
              Print any .gdb_index, .debug_cu_index, and .debug_tu_index sections that exist in the object.

       --print-gnu-debuglink
              If the .gnu_debuglink section is present  its  content  is  printed.   If  the  .note.gnu.build-id
              section is present its content is printed.  If a DWARF containing file named by the content of the
              .gnu_debuglink section exists the name will be printed.

       --print-lines (-l)
              Print the .debug_info section and the associated line section data.

       --print-lines-short (-ls)
              Print  the  .debug_info  section  and the associated line section data, but omit the <pc> address.
              Useful when a comparison of line sections from objects with slight differences is required.

       --print-macinfo (-m)
              Print the .debug_macinfo (DWARF  2,3,4)  and  .debug_macro  (DWARF5)  sections.  The  .debug_macro
              reporting may show output labeled MACRONOTES, mentioning macro content that might be questionable.
              See also --check-macros (-kw).

       --print-ranges (-N)
              Print  .debug_ranges section.  Because the DWARF specifications do not rule out garbage data areas
              in .debug_ranges (if they are not referenced from .debug_info) any garbage  bytes  can  result  in
              this print failing.

       --print-pubnames (-p)
              Print the .debug_pubnames section.

       --print-str-offsets
              Print the .debug_str_offsets section.

       --print-aranges (-r)
              Print the .debug_aranges section.

       --print-strings (-s)
              Print .debug_string section.

       --print-static (-ta)
              Print the IRIX only sections .debug_static_funcs and .debug_static_vars.

       --print-type (-y)
              Print the .debug_pubtypes section (and .debug_typenames, an SGI IRIX-only section).

       Having  dwarfdump print relocations may help establish whether dwarfdump understands any relocations that
       might exist.  Other tools may be more  useful  than  dwarfdump  for  printing  object-file  details.   If
       dwarfdump  or  libelf  is  built without libelf the relocation options are not available.  See "Print Elf
       Relocation Data" in the help output for additional relocation printing choices.

       --reloc (-o)
              Print all relocation records as well as we can  manage.   If  libdwarf  or  dwarfdump  were  built
              without libelf this option is unavailable.

       --version (-V)
              Print a dwarfdump date/version string and stop.

CHECKING OPTIONS

       --check-all (-ka)
              Turns on all checking options except --check-frame-extended (-kxe) (which might be slow enough one
              might not want to use it routinely.)

       --check-abbrev (-kb)
              Checks for certain abbreviations section errors when reading DIEs.

       --check-macros (-kw)
              Checks  for issues in DWARF5 .debug_macro and identifies issues that might be questionable but not
              necessarily errors with the string MACRONOTES (and reports some  MACRONOTES  that  --print-macinfo
              will not show).  It also checks .debug_macinfo, but less thoroughly and never emits MACRONOTES for
              .debug_macinfo.  See also --print-macinfo (-m).  (regrettably inconsistent spelling...).

       --check-constants (-kc)
              Checks for errors in constants in debug_info.

       -check-show (-kd)
              Turns on full reporting of error totals per producer.  (the default shows less detail).

       --check-silent-ks
              Turns off some verbose checking detection.

       --check-attr-dup (-kD)
              Turns  on  reporting  of  duplicated  attributes.   Duplicated  attributes  on a single DW_TAG are
              improper DWARF, but at least one compiler emitted such.

       --check-pubnames (-ke)
              Turns on reading pubnames and checking for fde errors.

       --check-frame-info (-kf)
              Turns on checking for FDE errors (.debug_frame and .eh_frame).

       --check-files-lines (-kF)
              Turns on checking for line table errors.

       --check-gaps (-kg)
              Turns on checking for unused gaps in .debug_info (these gaps are not an error,  just  a  waste  of
              space).

       --check-unique (-kG)
              Print only unique errors. Error lines are simplified (hex numbers removed, for example) and when a
              given message string would otherwise appear again it is suppressed.

       --check-summary (-ki)
              Causes a summary of checking results per compiler (producer) to be printed at the end.

       --check-loc (-kl)
              Turns on locations list checking.

       --check-ranges (-km)
              Turns on checking of ranges.

       --check-aranges (-kM)
              Turns on checking of aranges.

       --check-tag-attr (-kr)
              Turns  on  DIE  tag-attr  combinations  checking,  looking for surprising attributes for DIE tags.
              Prints a DWARF-CHECK message for each such found.  It does not report common extensions as errors.
              A summary of usage is printed at the end.  Common extensions to the standard  are  allowed  as  if
              standard.   See  the  -C  (--format-extensions)  option  to  show common extensions as DWARF-CHECK
              messages.  See -kuf (--check-usage-extended) to add additional details to the summary report.

       --check-usage (-ku)
              The same as -kr except only the summary is printed at the end,  the detailed DWARF-CHECK  messages
              per instance are not printed.

       --check-attr-encodings (-kE)
              Checks  the  integer  encoding  representation  of constant FORMs in debug_info, computing whether
              these integer values could fit in fewer bytes if represented  in  LEB128  and  reports  the  space
              saving that would achieve.

       --check-forward-refs (-kR)
              Turns  on  reading DIEs and checking for forward declarations from DW_AT_specification attributes.
              (which are not an error but can be a source of inefficiency for debuggers).

       --check-self-refs (-kS)
              Turns on checking DIE references for circular references.

       --check-tag-tag (-kt)
              Turns on tag-tag combinations checking, looking for surprising parent-child DIE relationships.  It
              does not report common extensions as errors.  Common extensions to the standard are allowed as  if
              standard.  See the -C (--format-extensions) option to show common extensions as errors.

       --check-frame-basic (-kx)
              Turns on basic frames checking for .debug_frame and .eh_frame).

       --check-frame-extended (-kxe)
              Turns  off basic check_frames and turns on extended frame checking for .debug_frame and .eh_frame.
              This option can be slow.

       --check-type (-ky)
              Turns on type_offset checking (ensuring local attribute  offsets refer to what  they  should)  and
              that DW_AT_decl_file and some other offsets refer to appropriate locations.

OPTION MODIFIERS

       --format-extensions (-C)
              This  is a secondary option after --check-tag-tag (-kt) or --check-tag-attr (-kr) or Normally when
              checking for tag-tag or tag-attribute combinations both the standard combinations and some  common
              extensions are allowed (not reported).  With this option the extensions are taken out of the class
              of allowed combinations.

       -kuf (--check-usage-extended)
              This  modifies  --check-tag-attr (-kr)  or  --check-usage (-ku) to print additional details in the
              summary.  Add the -kuf (--check-usage-extended) before or after the option it modifies.

       --format-dense (-d)
              When printing DIEs, put all the attributes for each DIE on the same (long) line as the  TAG.  This
              makes searching for DIE information (as with grep) much simpler as the entire DIE is on one line.

       --format-suppress-offsets (-D)
              Turns  off  the  display  of  section  offsets  and  attribute  values  in printed output.  So the
              .debug_info output is just TAGs and Attributes.  For pubnames (and the like)  it  removes  offsets
              from  the  output.   For  locations  lists it removes offsets from the output, but that is useless
              since the attribute values don't show so neither does the location data.

       --format-ellipsis (-e)
              Turns on truncation of attribute and tag names. For example DW_TAG_foo becomes foo. Not compatible
              with checking, only useful for printing DIEs.

       --format-global-offsets (-G)
              When printing, add global offsets to the offsets printed.

       --format-limit=<num> (-H number)
              When printing or checking .debug_info, this  terminates  the  search  after  'number'  compilation
              units.  When  printing frame information this terminates the FDE reporting after 'number' FDEs and
              the CIE reporting (which occurs if one adds -v) after 'number' CIEs. Example '--format-limit=1'

       --format-attr-name (-M)
              When printing, show the FORM for each attribute.  If a -v is added (or more than one) then details
              of any form indirection are also shown.

       --format-suppress-lookup (-n)
              When printing frames, this turns off the search for function names in inner  scopes.   Unless  the
              language  used  to build the object file supports function definitions in inner scopes there is no
              point in looking for function names in inner scopes.  And a really large  object  the  search  can
              take more time than one wants to wait.  This option suppresses the inner scope search.

       --file-output=<path> (-Ofile=<path>)
              The  <path>  will  be used as the file name for output instead of writing to stdout (stdout is the
              default).

       --format-suppress-data (-Q)
              Suppresses section data printing (set automatically with a checking option).

       --format-suppress-sanitize
              Suppresses the default string-printing translations so non-ascii and non-printable characters from
              the object file are printed as-is.  See "URI-STYLE OUTPUT" above.

       --format-suppress-uri (-U)
              Suppresses the default URI translation of following options on the command line.   See  "URI-STYLE
              INPUT STRINGS" above.

       --format-registers (-R)
              When printing frames for ABIs with lots of registers, this allows up to 1200 registers to be named
              (like  R999)  without  choosing  an  ABI with, for example '-x abi=ppc' or, equivalently, '--file-
              abi=ppc'

       --verbose (-v)
              Increases the detail shown when printing.  In some sections, using more -v options  will  increase
              the  detail  (one  to  four  are useful) or may change the report to show, for example, the actual
              line-data-commands instead of the resultant line-table.  Two to four -v options make a  difference
              when  printing  DIEs  and rnglists (-i), lines (-l), frames (-f,-F), gdb_index(-I).  Additional -v
              beyond four do not currently add-to or change the output.

       --show-dwarfdump-conf
              Shows what files are checked to find a dwarfdump.conf and its register naming tables.

LIMITING OUTPUT

       The simplest limiting option is to stop the examination/printing after <num> compilation units.   See  -H
       and   --format-limit  above.   This  option  also  limits  the  number  of FDEs and CIEs printed from any
       .debug_frame or .eh_frame section.

       The --search (-S) options print information about the  compilation  unit  and  DIE  where  the  string(s)
       appear.   These cannot be combined with other options.  At most one of each of the following is effective
       (so for example one can only have one 'match', but one can have a 'match', an 'any', and a 'regex').  Any
       --search (-S) causes the .debug_info section to be inspected.  No checking options  or  printing  options
       should  be  supplied  with --search(-S) options.  The strings should use URI-style to avoid any conflicts
       with the command-line parser applicable (bash, sh, ...)  or getopt(), as well as using URI to  deal  with
       searching for strings in non-ASCII such as French, (etc) or the now-nearly-universal UTF8.

       These  are particularly useful when the amount of DWARF information output by -i is multiple gigabytes of
       data.

       If -Sv used instead of -S , the number of occurrences is printed.  (see below for an example).

       --search-match=<string> (-Smatch=string)

       --search-match-count=<string> (-Svmatch=string)
              When printing DIEs for each tag value or attribute name that matches 'string'  exactly  print  the
              compilation  unit  information  and its section offset.  Any CU with no match is not printed.  The
              'string' is read as a URI string.  The count (Sv) form reports the count of occurrences.

       --search-any=<string> (-Sany=string)

       --search-any-count=<string> (-Svany=string)
              When printing DIEs for each tag value or attribute name that contains 'string'  somewhere  in  the
              tag or attribute (case insensitive) print the compilation unit information and its section offset.
              Any  CU  with no match is not printed.  The 'string' is read as a URI string.  The count (Sv) form
              reports the count of occurrences.

       --search-regex=string (-Sregex=string)

       --search-regex-count=string (-Svregex=string)
              When printing DIEs for each tag value or attribute name  where  the  'string'  regular  expression
              matches  print  the  compilation unit information and its section offset.  Any CU with no match is
              not printed.  The 'string' is read as a URI string.  The count (Sv)  form  reports  the  count  of
              occurrences.

       The  string  cannot  have spaces or other characters which are meaningful to getopt(3) and the shell will
       strip off quotes and other characters.  So the string is assumed to be in URI style  and  is  translated.
       In  other  words,  to  match 'a b' make the -S string 'a%20b' Instead of escaping " quotes in the string,
       type %25, as in
        'a "b' should be typed 'a%20%25b' (the ' are for  exposition  here,  not  part  of  the  strings).   Any
       characters can be typed in URI style, not just characters which are problematic to the shell or getopt.

       The  --search-any (-Sany) and --regex-any (-Sregex) options are only usable if regular-expression library
       functions required are found at configure time.

       The --search-print (-W) option is a modifier to the -S option, and increases  the  amount  of  output  -S
       prints.   An example v modifier to the -S option is shown below.  And we show the -W in context with a -S
       option.

       --search-match-count=string
              Prints information about the DIEs that -S matches and prints the count of occurrences.

       -S match=string1 -W

       --search-match=string1 --search-print-tree
              Prints the parent tree and the children tree for the DIEs that --search-match  matches.

       -S match=string2 -Wp

       --search-match=string2 --search-print-parent
              Prints the parent tree for the DIEs that -S matches.

       -S match=string3 -Wc

       --search-match=string3 --search-print-children
              Prints the children tree for the DIEs that -S matches.

       --format-gcc (-cg)
              Restricts printing/checking to compilers whose producer string starts with  'GNU'  and  turns  off
              -cs.

       --format-snc (-cs)
              Restricts printing/checking to compilers whose producer string starts with 'SN' and turns off -cg.

       --format-producer=<name> (-c<name>)
              Restricts  printing/checking  to  compilers  whose  producer  string  contains  'name'  (not  case
              sensitive).  The 'name' is read as a URI string.

OTHER OPTIONS

       -x name=<path>

       --file-name=/p/a/t/h.conf (-xname=/p/a/t/h.conf)
              The file path given is the name of a file assumed to be a dwarfdump.conf-like file.  The file path
              is read as a URI string.

       -x abi=ppc

       --file-abi=ppc
              Selects the abi (from a dwarfdump.conf file) to be used in printing frame information (here  using
              ppc as an example).  The abi is read as a URI string.

       --format-group-number=<n> (-x groupnumber=<n>)
              For  an object file with both DWARF5 split dwarf (.debug_info.dwo for example)  and ordinary DWARF
              sections (.debug_info for example) in the single object file one must use  --format-group-number=2
              to  print  the dwo sections.  Adding --file-tied=<path> naming the object file ties in the non-dwo
              skeleton sections (the <path> is to the  skeleton  object  file  when  the  main  object  file  is
              dwo/dwp).

       -x tied=/t/i/depath

       --file-tied=/t/i/depath
              Used when opening a main object that is a .dwo or .dwp file.  For example if /path/to/myapp.dwp is
              the   split-dwarf   object   and   /path/to/myapp   is   the  executable,  do  "dwarfdump  --file-
              tied=/path/to/myapp /path/to/myapp.dwp"  .  The tied file path names the executable which has  the
              .debug_addr  section  that  may  be referred to from the main object. See Split Objects (aka Debug
              Fission) in the DWARF5 standard.  This cannot be used with MacOS  debug  or  GNU  debuglink,  such
              files do not have a Split Dwarf object file.

       -x line5=s2l

       --file-line5=s2l
              Normally used only to test libdwarf interfaces.  There are 4 different interface function sets and
              to  ensure they all work this option lets us choose which to use.  The options are 's2l' (default,
              Allows standard and two-level line tables using the latest  interface  functions),  'std'  (Allows
              standard single level line tables using the latest interface functions), 'orig' (allows DWARF2,3,4
              original line tables using an older interface function set), 'orig2l' (allows original line tables
              and some two-level line tables using an older interface set).

       --print-producers
              -P  When  checking this adds the list of compilation-unit names seen for each producer-compiler to
              the printed checking results.

       -q

       --format-suppress-uri-msg
              When a URI is found and translated while  reading  the  command  line,  be  quiet  about  the  URI
              translation. That is, don't print the original and translated option strings.

       -u cuname

       --format-file=<file>
              Turns on selective printing of DIEs (printing like -i).  Only the DIEs for a compilation unit that
              match  the  name  provided  are  printed.   If  the compilation unit is ./a/b/c.c the 'cuname' you
              provide should be c.c as the characters through the  final  path-separating  /  are  ignored.   If
              'cuname'  begins  with  a / then the entire name string of a compilation unit must match 'cuname'.
              The 'file' is read as a URI string.

       -U

       --format-suppress-uri
              Turn off the URI interpretation of the command line strings entirely. Must be be  on  the  command
              line  before  any URI strings encountered to be fully effective.  Likely something no one needs to
              do.

       -h

       --help Show this man page.

SPLIT DWARF

       With Split Dwarf (DWARF5) the main body of the DWARF is in a separate file, often having the name  suffix
       .dwp or .dwo .

       For  example  if  /path/to/myapp.dwp  is  the split-dwarf object and /path/to/myapp is the executable, do
       "dwarfdump --file-tied=/path/to/myapp /path/to/myapp.dwp"  .  The tied file  path  names  the  executable
       which has the .debug_addr section and other sections that may be referred to from the .dwo/.dwp object.

       See Split Object Files (sometimes called Debug Fission) in the DWARF5 standard, section 7.3.

FILES

       dwarfdump

        ./dwarfdump.conf

       $(HOME)/.dwarfdump.conf

       $(HOME)/dwarfdump.conf

       <install-prefix>/lib/dwarfdump.conf

NOTES

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

BUGS

       Support for printing certain DWARF5 location expressions is incomplete.  Report problems to libdwarf-list
       -at- linuxmail -dot- org

                                                                                                     DWARFDUMP()