1*87aa9c9eSJonas Devlieghere // clang-format off 2*87aa9c9eSJonas Devlieghere // REQUIRES: lld, system-windows 3*87aa9c9eSJonas Devlieghere 4*87aa9c9eSJonas Devlieghere // RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s 5*87aa9c9eSJonas Devlieghere // RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ 6*87aa9c9eSJonas Devlieghere // RUN: %p/Inputs/stack_unwinding01.lldbinit 2>&1 | FileCheck %s 7*87aa9c9eSJonas Devlieghere 8*87aa9c9eSJonas Devlieghere 9*87aa9c9eSJonas Devlieghere struct Struct { 10*87aa9c9eSJonas Devlieghere void simple_method(int a, int b) { 11*87aa9c9eSJonas Devlieghere a += 1; 12*87aa9c9eSJonas Devlieghere simple_method(a, b); 13*87aa9c9eSJonas Devlieghere } 14*87aa9c9eSJonas Devlieghere }; 15*87aa9c9eSJonas Devlieghere 16*87aa9c9eSJonas Devlieghere 17*87aa9c9eSJonas Devlieghere 18*87aa9c9eSJonas Devlieghere int main(int argc, char **argv) { 19*87aa9c9eSJonas Devlieghere Struct s; 20*87aa9c9eSJonas Devlieghere s.simple_method(1,2); 21*87aa9c9eSJonas Devlieghere return 0; 22*87aa9c9eSJonas Devlieghere } 23*87aa9c9eSJonas Devlieghere 24*87aa9c9eSJonas Devlieghere 25*87aa9c9eSJonas Devlieghere // CHECK: (lldb) thread backtrace 26*87aa9c9eSJonas Devlieghere // CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 27*87aa9c9eSJonas Devlieghere // CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12 28*87aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20 29*87aa9c9eSJonas Devlieghere 30*87aa9c9eSJonas Devlieghere 31*87aa9c9eSJonas Devlieghere // CHECK: (lldb) thread backtrace 32*87aa9c9eSJonas Devlieghere // CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 33*87aa9c9eSJonas Devlieghere // CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12 34*87aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12 35*87aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #2: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20 36*87aa9c9eSJonas Devlieghere 37*87aa9c9eSJonas Devlieghere // CHECK: (lldb) thread backtrace 38*87aa9c9eSJonas Devlieghere // CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 39*87aa9c9eSJonas Devlieghere // CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12 40*87aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12 41*87aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #2: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method at stack_unwinding01.cpp:12 42*87aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #3: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20 43