File: single-file-split-dwarf.test

package info (click to toggle)
llvm-toolchain-9 1%3A9.0.1-16
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 882,436 kB
  • sloc: cpp: 4,167,636; ansic: 714,256; asm: 457,610; python: 155,927; objc: 65,094; sh: 42,856; lisp: 26,908; perl: 7,786; pascal: 7,722; makefile: 6,881; ml: 5,581; awk: 3,648; cs: 2,027; xml: 888; javascript: 381; ruby: 156
file content (44 lines) | stat: -rw-r--r-- 1,944 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# RUN: rm -rf %t.dir
# RUN: mkdir %t.dir
# RUN: cd %t.dir
# RUN: yaml2obj %p/Inputs/single-file-split-dwarf.yaml > %t.dir/test
# RUN: yaml2obj %p/Inputs/single-file-split-dwarf.o.yaml > %t.dir/test.o
# RUN: lldb-test breakpoints %t.dir/test %s | FileCheck %s

# This test checks that source code location is shown correctly
# when single split file debug information is used (when .dwo sections are in .o files).
#
# single-file-split-dwarf.yaml and single-file-split-dwarf.o.yaml are
# reduced yaml files produces from the object file and the corresponding executable.
#
# The following code was used initially:
# int main() {
#   return 0;
# }
# 
# void foo() {
# }
#
# Invocation used to produce .o file was:
# clang test.cpp -gdwarf-5 -gsplit-dwarf=single -c -o test.o -v
#
# The full invocation used to produce the executable was:
# "/usr/local/bin/ld" -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker
#  /lib64/ld-linux-x86-64.so.2 -o test /usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu/crt1.o
#  /usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7.3.0/crtbegin.o
#  -L/usr/lib/gcc/x86_64-linux-gnu/7.3.0 -L/usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu
#  -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../..
#  -L/home/umb/LLVM/build/bin/../lib -L/lib -L/usr/lib test.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc
#  --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/7.3.0/crtend.o
#  /usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu/crtn.o
#
# Also, the DW_AT_comp_dir string value set to empty in yaml produced. 
# Build bots had different path there and failed to find object.

b main
# CHECK-LABEL: b main
# CHECK: Address: {{.*}}main + 13 at test.cpp:2:3

b foo
# CHECK-LABEL: b foo
# CHECK: Address: {{.*}}foo() + 4 at test.cpp:6:1