With the fix: do not forget to hanlde the DW_RLE_start_end, which seems was omited/forgotten/removed by mistake. Original commit message: The patch implements the support for DW_RLE_base_address and DW_RLE_offset_pair .debug_rnglists entries Differential revision: https://reviews.llvm.org/D53140 ---- Added : /lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml Added : /lldb/trunk/lit/Breakpoint/debug_rnglist_offset_pair.test Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h llvm-svn: 345251
34 lines
758 B
Plaintext
34 lines
758 B
Plaintext
# RUN: yaml2obj %p/Inputs/debug_rnglist_offset_pair.yaml > %ttest
|
|
# RUN: lldb-test breakpoints %ttest %s | FileCheck %s
|
|
|
|
# The following code and invocation were used to produce asm file,
|
|
# which was manually edited to add DW_RLE_base_address entry.
|
|
# clang -S -g -gdwarf-5 -O1 test.cpp -o test.s
|
|
# Then it was compiled and converted to yaml.
|
|
#
|
|
# int C = 0;
|
|
# void foo(int P)
|
|
# {
|
|
# for (int I = 0; I < 2; ++I) {
|
|
# int *W = &C;
|
|
# *W &= P;
|
|
# }
|
|
# }
|
|
#
|
|
# int main ()
|
|
# {
|
|
# foo (1);
|
|
# return 0;
|
|
# }
|
|
#
|
|
# clang and LLD versions were 8.0.0 (trunk 344035)
|
|
#
|
|
# Output file contains .debug_rnglists section with entries:
|
|
# DW_RLE_offset_pair and DW_RLE_base_address.
|
|
|
|
b foo
|
|
# CHECK-LABEL: b foo
|
|
# CHECK: Address: {{.*}}`foo(int) + 5 at test.cpp:8:8
|
|
|
|
|