diff options
author | Aaron Merey <amerey@redhat.com> | 2020-01-09 13:19:20 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2020-01-09 13:19:20 +0000 |
commit | 301a9420d947da145884261ac31a7a52438c2894 (patch) | |
tree | fb30bb433561f4887f14f356b4802c400939ad7a /binutils/doc | |
parent | 40c75bc8b07abc5d5774ea1c439b69c96e7fd485 (diff) |
Add support for debuginfod to the binutils (disable by default, enabled via a configure time option).
debuginfod is a lightweight web service that indexes ELF/DWARF
debugging resources by build-id and serves them over HTTP. This patch
enables objdump and readelf to query debuginfod servers when they are
otherwise not able to find separate debug files. Binutils can be built
with debuginfod using the --with-debuginfod configure option. This
requires that libdebuginfod be installed and found at configure time.
debuginfod is packaged with elfutils, starting with version 0.178. For
more information see https://sourceware.org/elfutils/.
toplevel* config/debuginfod.m4: New file. Add macro AC_DEBUGINFOD. Adds
new configure option --with-debuginfod.
* configure: Regenerate.
* configure.ac: Call AC_DEBUGINFOD.
binutils* Makefile.am (readelf_LDADD, objdump_LDADD): Add libdebuginfod.
* Makefile.in: Regenerate.
* NEWS: Update.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Call AC_DEBUGINFOD.
* doc/Makefile.in: Regenerate.
* doc/binutils.texi: Add section on using binutils
with debuginfod.
* dwarf.c (debuginfod_fetch_separate_debug_info): New function.
Query debuginfod servers for the target debug file.
(load_separate_debug_info): Call
debuginfod_fetch_separate_debug_info if configured with
debuginfod.
(load_separate_debug_files): Add file argument to
load_separate_debug_info calls.
* dwarf.h (get_build_id): Add declaration.
* objdump.c (get_build_id): New function. Get build-id of file.
* readelf.c (get_build_id): Likewise.
* testsuite/binutils-all/debuginfod.exp: New tests.
* testsuite/binutils-all/linkdebug.s: Add .note.gnu.build-id
section.
Diffstat (limited to 'binutils/doc')
-rw-r--r-- | binutils/doc/Makefile.in | 5 | ||||
-rw-r--r-- | binutils/doc/binutils.texi | 18 |
2 files changed, 22 insertions, 1 deletions
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in index 52c39ba2eb..b0e7b7b6c8 100644 --- a/binutils/doc/Makefile.in +++ b/binutils/doc/Makefile.in @@ -127,7 +127,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \ $(top_srcdir)/../config/zlib.m4 $(top_srcdir)/../libtool.m4 \ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \ - $(top_srcdir)/../bfd/version.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/../bfd/version.m4 \ + $(top_srcdir)/../config/debuginfod.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) @@ -284,6 +286,7 @@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBDEBUGINFOD = @LIBDEBUGINFOD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBINTL_DEP = @LIBINTL_DEP@ diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index f938e7437a..71af6c5fcf 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -154,6 +154,7 @@ in the section entitled ``GNU Free Documentation License''. * elfedit:: Update ELF header and property of ELF files * Common Options:: Command-line options for all utilities * Selecting the Target System:: How these utilities determine the target +* debuginfod:: Using binutils with debuginfod * Reporting Bugs:: Reporting Bugs * GNU Free Documentation License:: GNU Free Documentation License * Binutils Index:: Binutils Index @@ -5201,6 +5202,23 @@ Ways to specify: deduced from the input file @end enumerate +@node debuginfod +@chapter debuginfod +@cindex separate debug files + +debuginfod is a web service that indexes ELF/DWARF debugging resources +by build-id and serves them over HTTP. + +Binutils can be built with the debuginfod client library +@code{libdebuginfod} using the @option{--with-debuginfod} configure option. +This option is enabled by default if @code{libdebuginfod} is installed +and found at configure time. This allows @command{objdump} and +@command{readelf} to automatically query debuginfod servers for +separate debug files when the files are otherwise not found. + +debuginfod is packaged with elfutils, starting with version 0.178. +You can get the latest version from `https://sourceware.org/elfutils/'. + @node Reporting Bugs @chapter Reporting Bugs @cindex bugs |