187aa9c9eSJonas Devlieghere // clang-format off 2*20c4e95bSVladislav Dzhidzhoev // REQUIRES: lld, target-windows 387aa9c9eSJonas Devlieghere 487aa9c9eSJonas Devlieghere // RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s 5cf3464bbSJonas Devlieghere // RUN: %lldb -f %t.exe -s \ 687aa9c9eSJonas Devlieghere // RUN: %p/Inputs/stack_unwinding01.lldbinit 2>&1 | FileCheck %s 787aa9c9eSJonas Devlieghere 887aa9c9eSJonas Devlieghere 987aa9c9eSJonas Devlieghere struct Struct { 1087aa9c9eSJonas Devlieghere void simple_method(int a, int b) { 1187aa9c9eSJonas Devlieghere a += 1; 1287aa9c9eSJonas Devlieghere simple_method(a, b); 1387aa9c9eSJonas Devlieghere } 1487aa9c9eSJonas Devlieghere }; 1587aa9c9eSJonas Devlieghere 1687aa9c9eSJonas Devlieghere 1787aa9c9eSJonas Devlieghere 1887aa9c9eSJonas Devlieghere int main(int argc, char **argv) { 1987aa9c9eSJonas Devlieghere Struct s; 2087aa9c9eSJonas Devlieghere s.simple_method(1,2); 2187aa9c9eSJonas Devlieghere return 0; 2287aa9c9eSJonas Devlieghere } 2387aa9c9eSJonas Devlieghere 2487aa9c9eSJonas Devlieghere 2587aa9c9eSJonas Devlieghere // CHECK: (lldb) thread backtrace 2687aa9c9eSJonas Devlieghere // CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 275e9c9b32SZequan Wu // CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method(this={{.*}}, a=2, b=2) at stack_unwinding01.cpp:12 2887aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20 2987aa9c9eSJonas Devlieghere 3087aa9c9eSJonas Devlieghere 3187aa9c9eSJonas Devlieghere // CHECK: (lldb) thread backtrace 3287aa9c9eSJonas Devlieghere // CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 335e9c9b32SZequan Wu // CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method(this={{.*}}, a=3, b=2) at stack_unwinding01.cpp:12 345e9c9b32SZequan Wu // CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method(this={{.*}}, a=2, b=2) at stack_unwinding01.cpp:12 3587aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #2: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20 3687aa9c9eSJonas Devlieghere 3787aa9c9eSJonas Devlieghere // CHECK: (lldb) thread backtrace 3887aa9c9eSJonas Devlieghere // CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 395e9c9b32SZequan Wu // CHECK-NEXT: * frame #0: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method(this={{.*}}, a=4, b=2) at stack_unwinding01.cpp:12 405e9c9b32SZequan Wu // CHECK-NEXT: frame #1: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method(this={{.*}}, a=3, b=2) at stack_unwinding01.cpp:12 415e9c9b32SZequan Wu // CHECK-NEXT: frame #2: {{.*}} stack_unwinding01.cpp.tmp.exe`Struct::simple_method(this={{.*}}, a=2, b=2) at stack_unwinding01.cpp:12 4287aa9c9eSJonas Devlieghere // CHECK-NEXT: frame #3: {{.*}} stack_unwinding01.cpp.tmp.exe`main(argc={{.*}}, argv={{.*}}) at stack_unwinding01.cpp:20 43