Have readelf and objdump display the contents of the DWARF augmentation data as a string, if it is printable.

PR 24809
	* dwarf.c (display_debug_names): Display the contents of the
	augmentation string, if it is printable.
This commit is contained in:
Tom de Vries 2019-07-25 17:24:22 +01:00 committed by Nick Clifton
parent c7c860d2d2
commit 48467cb99b
2 changed files with 27 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-07-25 Tom de Vries <vries@gcc.gnu.org>
PR 24809
* dwarf.c (display_debug_names): Display the contents of the
augmentation string, if it is printable.
2019-07-25 Nick Clifton <nickc@redhat.com>
PR 24837

View File

@ -29,6 +29,7 @@
#include "dwarf.h"
#include "gdb/gdb-index.h"
#include "filenames.h"
#include "safe-ctype.h"
#include <assert.h>
#undef MAX
@ -8543,6 +8544,8 @@ display_debug_names (struct dwarf_section *section, void *file)
uint32_t augmentation_string_size;
unsigned int i;
unsigned long sec_off;
bfd_boolean augmentation_printable;
const char *augmentation_string;
unit_start = hdrptr;
@ -8606,15 +8609,32 @@ display_debug_names (struct dwarf_section *section, void *file)
augmentation_string_size);
augmentation_string_size += (-augmentation_string_size) & 3;
}
printf (_("Augmentation string:"));
augmentation_printable = TRUE;
augmentation_string = (const char *) hdrptr;
for (i = 0; i < augmentation_string_size; i++)
{
unsigned char uc;
SAFE_BYTE_GET_AND_INC (uc, hdrptr, 1, unit_end);
printf (" %02x", uc);
if (uc != 0 && !ISPRINT (uc))
augmentation_printable = FALSE;
}
if (augmentation_printable)
{
printf (" (\"");
for (i = 0;
i < augmentation_string_size && augmentation_string[i];
++i)
putchar (augmentation_string[i]);
printf ("\")");
}
putchar ('\n');
putchar ('\n');
printf (_("CU table:\n"));