xref: /llvm-project/lldb/test/Shell/SymbolFile/DWARF/debug-types-expressions.test (revision d875838e8b45cb0da5070298d0c1a2d1ee78ce7e)
1# UNSUPPORTED: system-darwin, system-windows
2
3# Make sure DWARF v4 type units work.
4# RUN: %clangxx_host %S/Inputs/debug-types-expressions.cpp \
5# RUN:   -g -gdwarf-4 -fdebug-types-section -o %t4
6# RUN: %lldb %t4 -s %s -o exit | FileCheck %s
7
8# Now do the same for DWARF v5.
9# RUN: %clangxx_host %S/Inputs/debug-types-expressions.cpp \
10# RUN:   -g -gdwarf-5 -fdebug-types-section -o %t5
11# RUN: %lldb %t5 -s %s -o exit | FileCheck %s
12
13# Test type units in dwo files.
14# RUN: %clangxx_host %S/Inputs/debug-types-expressions.cpp \
15# RUN:   -g -gdwarf-4 -fdebug-types-section -gsplit-dwarf -o %t4dwo \
16# RUN:   -Xclang -split-dwarf-output -Xclang %t4dwo.dwo \
17# RUN:   -Xclang -split-dwarf-file   -Xclang %t4dwo.dwo
18# RUN: %lldb %t4dwo -s %s -o exit | FileCheck %s
19
20# And type units+dwo+dwarf5.
21# RUN: %clangxx_host %S/Inputs/debug-types-expressions.cpp \
22# RUN:   -g -gdwarf-5 -fdebug-types-section -gsplit-dwarf -o %t5dwo \
23# RUN:   -Xclang -split-dwarf-output -Xclang %t5dwo.dwo \
24# RUN:   -Xclang -split-dwarf-file   -Xclang %t5dwo.dwo
25# RUN: %lldb %t5dwo -s %s -o exit | FileCheck %s
26
27breakpoint set -n foo
28process launch
29
30# CHECK: Process {{.*}} stopped
31
32frame variable a
33# CHECK-LABEL: frame variable a
34# CHECK: (B *) a =
35
36frame variable *a
37# CHECK-LABEL: frame variable *a
38# CHECK:      (B) *a = {
39# CHECK-NEXT:   A = (i = 47)
40# CHECK-NEXT:   j = 42
41# CHECK-NEXT: }
42
43expression a->f()
44# CHECK-LABEL: expression a->f()
45# CHECK: (int) $0 = 47
46
47expression ns::A()
48# CHECK-LABEL: expression ns::A()
49# CHECK: (ns::A) $1 = (i = 147)
50
51expression ns::A().i + a->i
52# CHECK-LABEL: expression ns::A().i + a->i
53# CHECK: (int) $2 = 194
54
55expression ns::A().getA()
56# CHECK-LABEL: ns::A().getA()
57# CHECK: (A) $3 = (i = 146)
58