1// When linking with link.exe, -gdwarf still produces PDB instead.
2// UNSUPPORTED: system-windows
3
4// RUN: %clangxx_host -gdwarf -std=c++11 -o %t %s
5// RUN: %lldb %t \
6// RUN: -o run \
7// RUN: -o "frame var --show-types f" \
8// RUN: -o "frame var vla0" \
9// RUN: -o "frame var fla0" \
10// RUN: -o "frame var fla1" \
11// RUN: -o "frame var vla01" \
12// RUN: -o "frame var vla10" \
13// RUN: -o "frame var vlaN" \
14// RUN: -o "frame var vlaNM" \
15// RUN: -o exit | FileCheck %s
16
17struct Foo {
18 static constexpr int n = 1;
19 int m_vlaN[n];
20
21 int m_vla0[0];
22};
23
24int main() {
25 Foo f;
26 f.m_vlaN[0] = 60;
27
28 // CHECK: (lldb) frame var --show-types f
29 // CHECK-NEXT: (Foo) f = {
30 // CHECK-NEXT: (int[1]) m_vlaN = {
31 // CHECK-NEXT: (int) [0] = 60
32 // CHECK-NEXT: }
33 // CHECK-NEXT: (int[0]) m_vla0 = {}
34 // CHECK-NEXT: }
35
36 int vla0[0] = {};
37
38 // CHECK: (lldb) frame var vla0
39 // CHECK-NEXT: (int[0]) vla0 = {}
40
41 int fla0[] = {};
42
43 // CHECK: (lldb) frame var fla0
44 // CHECK-NEXT: (int[0]) fla0 = {}
45
46 int fla1[] = {42};
47
48 // CHECK: (lldb) frame var fla1
49 // CHECK-NEXT: (int[1]) fla1 = ([0] = 42)
50
51 int vla01[0][1];
52
53 // CHECK: (lldb) frame var vla01
54 // CHECK-NEXT: (int[0][1]) vla01 = {}
55
56 int vla10[1][0];
57
58 // CHECK: (lldb) frame var vla10
59 // CHECK-NEXT: (int[1][0]) vla10 = ([0] = int[0]
60
61 int n = 3;
62 int vlaN[n];
63 for (int i = 0; i < n; ++i)
64 vlaN[i] = -i;
65
66 // CHECK: (lldb) frame var vlaN
67 // CHECK-NEXT: (int[]) vlaN = ([0] = 0, [1] = -1, [2] = -2)
68
69 int m = 2;
70 int vlaNM[n][m];
71 for (int i = 0; i < n; ++i)
72 for (int j = 0; j < m; ++j)
73 vlaNM[i][j] = i + j;
74
75 // FIXME: multi-dimensional VLAs aren't well supported
76 // CHECK: (lldb) frame var vlaNM
77 // CHECK-NEXT: (int[][]) vlaNM = {
78 // CHECK-NEXT: [0] = ([0] = 0, [1] = 1, [2] = 1)
79 // CHECK-NEXT: [1] = ([0] = 1, [1] = 1, [2] = 2)
80 // CHECK-NEXT: }
81
82 __builtin_debugtrap();
83}
84

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of lldb/test/Shell/SymbolFile/DWARF/vla.cpp