| # XFAIL: target-windows |
| |
| # Test the ${function.formatted-arguments} frame-format variable. |
| |
| # RUN: split-file %s %t |
| # RUN: %clangxx_host -g -gdwarf %t/main.cpp -o %t.out |
| # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ |
| # RUN: | FileCheck %s |
| # |
| # RUN: %clangxx_host -O0 %t/main.cpp -o %t-nodebug.out |
| # RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ |
| # RUN: | FileCheck %s --check-prefix=CHECK-NODEBUG |
| |
| #--- main.cpp |
| struct Foo { |
| void func() {} |
| }; |
| |
| void bar() { |
| Foo{}.func(); |
| } |
| |
| void foo(int, int x) { |
| bar(); |
| } |
| |
| void myFunc(char const * str, |
| void (*fptr)(int, int)) { |
| fptr(5, 10); |
| } |
| |
| int main(int argc, char const *argv[]) { |
| myFunc("hello", &foo); |
| return 0; |
| } |
| |
| #--- commands.input |
| settings set -f frame-format "custom-frame '${function.formatted-arguments}'\n" |
| break set -n func |
| |
| run |
| bt |
| |
| # CHECK: custom-frame '(this={{.*}})' |
| # CHECK: custom-frame '()' |
| # CHECK: custom-frame '({{.*}}=5, x=10)' |
| # CHECK: custom-frame '(str="hello", fptr=({{.*}}.out`{{.*}}foo(int,{{.*}}int) at main.cpp:{{[0-9]+}}))' |
| # CHECK: custom-frame '(argc=1, argv={{.*}})' |
| |
| # CHECK-NODEBUG: custom-frame '()' |
| # CHECK-NODEBUG: custom-frame '()' |
| # CHECK-NODEBUG: custom-frame '(int, int)' |
| # CHECK-NODEBUG: custom-frame '(char const*, void (*)(int, int))' |