Files
clang-p2996/lldb/lit/Breakpoint/split-dwarf-5-addrbase.test
George Rimar 4e520107c1 [LLDB] - Fix setting the breakpoints when -gsplit-dwarf and DWARF 5 were used for building the executable.
The issue happens because starting from DWARF v5
DW_AT_addr_base attribute should be used
instead of DW_AT_GNU_addr_base. LLDB does not do that and
we end up reading the .debug_addr header as section content
(as addresses) instead of skipping it and reading the real addresses.
Then LLDB is unable to match 2 similar locations and
thinks they are different.

Differential revision: https://reviews.llvm.org/D54751

llvm-svn: 347842
2018-11-29 08:16:07 +00:00

31 lines
905 B
Plaintext

# RUN: rm -rf %t.dir
# RUN: mkdir %t.dir
# RUN: cd %t.dir
# RUN: yaml2obj %p/Inputs/split-dwarf-5-addrbase.dwo.yaml > %t.dir/test.dwo
# RUN: yaml2obj %p/Inputs/split-dwarf-5-addrbase.yaml > %t.dir/test
# RUN: lldb-test breakpoints %t.dir/test %s | FileCheck %s
# This test checks that source code location is shown correctly
# when -gsplit-dwarf and DWARF 5 are used.
#
# split-dwarf-5-addrbase.dwo.yaml and split-dwarf-5-addrbase.yamlare
# reduced yaml files produces from the dwo file and the corresponding executable.
#
# The following code was used initially:
# void baz() {
# }
#
# int main() {
# baz();
# return 0;
# }
#
# Invocation used to produce outputs was:
# clang test.cc -g -fno-rtti -c -gdwarf-5 -gsplit-dwarf
# clang test.o -g -fno-rtti -gdwarf-5 -o test -gsplit-dwarf
# clang version 8.0.0 (trunk 347299)
b baz
# CHECK-LABEL: b baz
# CHECK: Address: {{.*}}baz() + 4 at test.cc:2:1