summaryrefslogtreecommitdiffstats
path: root/lldb/lit/SymbolFile/NativePDB
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/lit/SymbolFile/NativePDB')
-rw-r--r--lldb/lit/SymbolFile/NativePDB/Inputs/stack_unwinding01.lldbinit8
-rw-r--r--lldb/lit/SymbolFile/NativePDB/stack_unwinding01.cpp48
2 files changed, 56 insertions, 0 deletions
diff --git a/lldb/lit/SymbolFile/NativePDB/Inputs/stack_unwinding01.lldbinit b/lldb/lit/SymbolFile/NativePDB/Inputs/stack_unwinding01.lldbinit
new file mode 100644
index 00000000000..d035d3bb881
--- /dev/null
+++ b/lldb/lit/SymbolFile/NativePDB/Inputs/stack_unwinding01.lldbinit
@@ -0,0 +1,8 @@
+b stack_unwinding01.cpp:12
+run
+thread backtrace
+c
+thread backtrace
+c
+thread backtrace
+quit \ No newline at end of file
diff --git a/lldb/lit/SymbolFile/NativePDB/stack_unwinding01.cpp b/lldb/lit/SymbolFile/NativePDB/stack_unwinding01.cpp
new file mode 100644
index 00000000000..8dc7483732c
--- /dev/null
+++ b/lldb/lit/SymbolFile/NativePDB/stack_unwinding01.cpp
@@ -0,0 +1,48 @@
+// clang-format off
+// REQUIRES: lld
+
+// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s
+// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \
+// RUN: %p/Inputs/stack_unwinding01.lldbinit 2>&1 | FileCheck %s
+
+
+struct Struct {
+ void simple_method(int a, int b) {
+ a += 1;
+ simple_method(a, b);
+ }
+};
+
+
+
+int main(int argc, char **argv) {
+ Struct s;
+ s.simple_method(1,2);
+ return 0;
+}
+
+
+// CHECK: (lldb) thread backtrace
+// CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1
+// CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12
+// CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20
+// CHECK-NEXT: frame #2: {{.*}} kernel32.dll`BaseThreadInitThunk + 34
+// CHECK-NEXT: frame #3: {{.*}} ntdll.dll`RtlUserThreadStart + 52
+
+
+// CHECK: (lldb) thread backtrace
+// CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1
+// CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12
+// CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12
+// CHECK-NEXT: frame #2: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20
+// CHECK-NEXT: frame #3: {{.*}} kernel32.dll`BaseThreadInitThunk + 34
+// CHECK-NEXT: frame #4: {{.*}} ntdll.dll`RtlUserThreadStart + 52
+
+// CHECK: (lldb) thread backtrace
+// CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1
+// CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12
+// CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12
+// CHECK-NEXT: frame #2: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12
+// CHECK-NEXT: frame #3: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20
+// CHECK-NEXT: frame #4: {{.*}} kernel32.dll`BaseThreadInitThunk + 34
+// CHECK-NEXT: frame #5: {{.*}} ntdll.dll`RtlUserThreadStart + 52 \ No newline at end of file
OpenPOWER on IntegriCloud