[PATCH] D55261: [llvm-dwarfdump] - Simplify the test case.
David Blaikie via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 4 08:46:08 PST 2018
dblaikie added inline comments.
================
Comment at: test/tools/llvm-dwarfdump/X86/no_debug_addr.s:5-6
+## When .debug_addr is absent for some reason, check we do not print a bogus section name.
+## We had a bug that could be a reason of that when
+## DW_RLE_startx_length/DW_RLE_base_addressx/DW_RLE_offset_pair tags were used.
----------------
Not sure I understand this comment - but I think I get where you're going with it, might just be some grammar improvement to make it more clear?
Oh, actually, here's a thought - did this bug pop-up when using rnglists in .dwo files? They certainly won't have a debug_addr & would then be a fully realistic scenario rather than one where a section of debug info would have to be dropped to demonstrate the failure?
So maybe a comment like this:
## Ensure bogus empty section names are not printed when dumping rnglists that reference debug_addr when it is not present (such as in .dwo files).
Yep, looks like it does, so here's a really short example I worked up:
.section .debug_info.dwo,"e", at progbits
.long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit
.Ldebug_info_dwo_start1:
.short 5 # DWARF version number
.byte 5 # DWARF Unit Type
.byte 8 # Address Size (in bytes)
.long 0 # Offset Into Abbrev. Section
.quad -6809755978868859807
.byte 1 # Abbrev [1] 0x14:0x32 DW_TAG_compile_unit
.byte 0 # DW_AT_ranges
.Ldebug_info_dwo_end1:
.section .debug_abbrev.dwo,"e", at progbits
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 0 # DW_CHILDREN_no
.byte 85 # DW_AT_ranges
.byte 35 # DW_FORM_rnglistx
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.section .debug_rnglists.dwo,"e", at progbits
.long .Ldebug_rnglist_table_end1-.Ldebug_rnglist_table_start1 # Length
.Ldebug_rnglist_table_start1:
.short 5 # Version
.byte 8 # Address size
.byte 0 # Segment selector size
.long 1 # Offset entry count
.Lrnglists_dwo_table_base0:
.long .Ldebug_ranges0-.Lrnglists_dwo_table_base0
.Ldebug_ranges0:
.byte 1 # DW_RLE_base_addressx
.byte 0 # base address index
.byte 4 # DW_RLE_offset_pair
.byte 0 # starting offset
.byte 1 # ending offset
.byte 3 # DW_RLE_startx_length
.byte 1 # start index
.byte 2 # length
.byte 0 # DW_RLE_end_of_list
.Ldebug_rnglist_table_end1:
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55261/new/
https://reviews.llvm.org/D55261
More information about the llvm-commits
mailing list