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.
This commit is contained in:
parent
40c75bc8b0
commit
301a9420d9
16 changed files with 647 additions and 61 deletions
|
@ -18,9 +18,22 @@
|
|||
|
||||
/* This is the separate debug info file. */
|
||||
|
||||
/* Create a .debug_abbrev section for use by the .debug_info section
|
||||
/* Create .note.gnu.build-id note for use by the .gnu_debugaltlink
|
||||
in the main object file. */
|
||||
|
||||
|
||||
.section .note.gnu.build-id,"a",%note
|
||||
.balign 4
|
||||
.dc.l 0x04 ;# Name size
|
||||
.dc.l 0x18 ;# Description size
|
||||
.dc.l 0x03 ;# Type
|
||||
.asciz "GNU" ;# Name
|
||||
.dc.b 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
|
||||
.dc.b 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff
|
||||
.dc.b 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef
|
||||
|
||||
/* Create a .debug_abbrev section for use by the .debug_info section
|
||||
in the main object file. */
|
||||
|
||||
.section .debug_abbrev,"",%progbits
|
||||
abbrevs:
|
||||
.uleb128 0x01 ;# Abbrev code.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue