binutils-gdb/binutils/doc/debug.options.texi
Nick Clifton 24841daa74 Extend readelf and objdump so that they will display and follow multiple links to separate debug information files.
PR 23843
	* dwarf.h (struct separate_info): New structure for containing
	information on separate debug info files.
	* dwarf.c (struct dwo_info): New structure for containing dwo
	links.
	(first_dwo_info): Chain of dwo_info structures.
	(first_separate_file): Chain of separate_info structures.
	(separate_debug_file, separate_debug_filename): Delete.
	(fetch_alt_indirect_string): Scan all separate debug info files
	for the requested string.
	(add_dwo_info): New function.
	(add_dwo_name): New function.
	(add_dwo_dir): New function.
	(add_dwo_id: New function.
	(free_dwo_info): New function.
	(read_and_display_attr_value): Store DWO data using the new
	functions.
	(load_debug_section_with_follow): If necessary, scan the list of
	separate debug info files for the requested section.
	(add_separate_debug_file): New function.
	(load_separate_debug_info): Call add_separate_debug_file to store
	the information on the newly loaded file.
	(load_dwo_file): Likewise.
	(load_separate_debif_file): Rename to load_separate_debug_files.
	Change return type to boolean.  If following links then attempt to
	load all separate debug info files, not just the first one.
	(free_debug_memory): Release memory in dwo_info and separate_info
	chains.
	* objdump.c (dump_dwarf): Iterate over all loaded debg info files.
	* readelf.c (process_object): Likewise.
	* doc/debug.options.texi: Update descriptions of links and
	follow-links options.
	* testsuite/binutils-all/objdump.WK2: Update expected output.
	* testsuite/binutils-all/readelf.k2: Likewise.
	* NEWS: Announce the new feature.
2019-02-22 10:36:24 +00:00

144 lines
4.1 KiB
Plaintext

@c This file contains the entry for the -w/--debug-dump (readelf) and
@c -W/--dwarf (objdump) option that is common to both readelf and objdump.
Displays the contents of the DWARF debug sections in the file, if any
are present. Compressed debug sections are automatically decompressed
(temporarily) before they are displayed. If one or more of the
optional letters or words follows the switch then only those type(s)
of data will be dumped. The letters and words refer to the following
information:
@c Please Keep This Table Alpha Sorted.
@table @code
@item a
@itemx =abbrev
Displays the contents of the @samp{.debug_abbrev} section.
@item A
@itemx =addr
Displays the contents of the @samp{.debug_addr} section.
@item c
@itemx =cu_index
Displays the contents of the @samp{.debug_cu_index} and/or
@samp{.debug_tu_index} sections.
@item f
@itemx =frames
Display the raw contents of a @samp{.debug_frame} section.
@item F
@item =frame-interp
Display the interpreted contents of a @samp{.debug_frame} section.
@item g
@itemx =gdb_index
Displays the contents of the @samp{.gdb_index} and/or
@samp{.debug_names} sections.
@item i
@itemx =info
Displays the contents of the @samp{.debug_info} section. Note: the
output from this option can also be restricted by the use of the
@option{--dwarf-depth} and @option{--dwarf-start} options.
@item k
@itemx =links
Displays the contents of the @samp{.gnu_debuglink} and/or
@samp{.gnu_debugaltlink} sections. Also displays any links to
separate dwarf object files (dwo), if they are specified by the
DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
@samp{.debug_info} section.
@item K
@itemx =follow-links
Display the contents of any selected debug sections that are found in
linked, separate debug info file(s). This can result in multiple
versions of the same debug section being displayed if it exists in
more than one file.
In addition, when displaying DWARF attributes, if a form is found that
references the separate debug info file, then the referenced contents
will also be displayed.
@item l
@itemx =rawline
Displays the contents of the @samp{.debug_line} section in a raw
format.
@item L
@item =decodedline
Displays the interpreted contents of the @samp{.debug_line} section.
@item m
@itemx =macro
Displays the contents of the @samp{.debug_macro} and/or
@samp{.debug_macinfo} sections.
@item o
@itemx =loc
Displays the contents of the @samp{.debug_loc} and/or
@samp{.debug_loclists} sections.
@item p
@itemx =pubnames
Displays the contents of the @samp{.debug_pubnames} and/or
@samp{.debug_gnu_pubnames} sections.
@item r
@itemx =aranges
Displays the contents of the @samp{.debug_aranges} section.
@item R
@itemx =Ranges
Displays the contents of the @samp{.debug_ranges} and/or
@samp{.debug_rnglists} sections.
@item s
@itemx =str
Displays the contents of the @samp{.debug_str}, @samp{.debug_line_str}
and/or @samp{.debug_str_offsets} sections.
@item t
@itemx =pubtype
Displays the contents of the @samp{.debug_pubtypes} and/or
@samp{.debug_gnu_pubtypes} sections.
@item T
@itemx =trace_aranges
Displays the contents of the @samp{.trace_aranges} section.
@item u
@itemx =trace_abbrev
Displays the contents of the @samp{.trace_abbrev} section.
@item U
@itemx =trace_info
Displays the contents of the @samp{.trace_info} section.
@end table
Note: displaying the contents of @samp{.debug_static_funcs},
@samp{.debug_static_vars} and @samp{debug_weaknames} sections is not
currently supported.
@item --dwarf-depth=@var{n}
Limit the dump of the @code{.debug_info} section to @var{n} children.
This is only useful with @option{--debug-dump=info}. The default is
to print all DIEs; the special value 0 for @var{n} will also have this
effect.
With a non-zero value for @var{n}, DIEs at or deeper than @var{n}
levels will not be printed. The range for @var{n} is zero-based.
@item --dwarf-start=@var{n}
Print only DIEs beginning with the DIE numbered @var{n}. This is only
useful with @option{--debug-dump=info}.
If specified, this option will suppress printing of any header
information and all DIEs before the DIE numbered @var{n}. Only
siblings and children of the specified DIE will be printed.
This can be used in conjunction with @option{--dwarf-depth}.