[PATCH][binutils] Print DWO ID
Tom de Vries
tdevries@suse.de
Thu Feb 11 09:41:03 GMT 2021
Hi,
With exec:
...
$ gcc -gsplit-dwarf ~/hello.c -gdwarf-5
...
a dwarf-5 DW_UT_skeleton CU is generated, but the corresponding DWO ID is not
printed by readelf -wi.
Add this, such that we have:
....
Compilation Unit @ offset 0xc7:
Length: 0x31 (32-bit)
Version: 5
Unit Type: DW_UT_skeleton (4)
Abbrev Offset: 0x64
Pointer Size: 8
+ DWO ID: 0x4756ae3ac4348f21
<0><db>: Abbrev Number: 1 (DW_TAG_skeleton_unit)
...
OK for trunk?
Thanks,
- Tom
[binutils] Print DWO ID
binutils/ChangeLog:
2021-02-11 Tom de Vries <tdevries@suse.de>
* dwarf.c (process_debug_info): Print DWO ID.
---
binutils/dwarf.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 3cbd19710d7..c96613f37e6 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -3692,11 +3692,13 @@ process_debug_info (struct dwarf_section * section,
if (compunit.cu_version < 5)
SAFE_BYTE_GET_AND_INC (compunit.cu_pointer_size, hdrptr, 1, end);
+ bfd_boolean do_dwo_id = FALSE;
+ uint64_t dwo_id;
if (compunit.cu_unit_type == DW_UT_split_compile
|| compunit.cu_unit_type == DW_UT_skeleton)
{
- uint64_t dwo_id;
SAFE_BYTE_GET_AND_INC (dwo_id, hdrptr, 8, end);
+ do_dwo_id = TRUE;
}
/* PR 17512: file: 001-108546-0.001:0.1. */
@@ -3769,6 +3771,8 @@ process_debug_info (struct dwarf_section * section,
printf (_(" Type Offset: 0x%s\n"),
dwarf_vmatoa ("x", type_offset));
}
+ if (do_dwo_id)
+ printf (_(" DWO ID: 0x%s\n"), dwarf_vmatoa ("x", dwo_id));
if (this_set != NULL)
{
dwarf_vma *offsets = this_set->section_offsets;
More information about the Binutils
mailing list