| # XFAIL: target-windows | |
| # Test the ${function.template-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 | |
| #--- main.cpp | |
| template<typename K> | |
| struct Foo { | |
| template<typename T> | |
| void func() {} | |
| }; | |
| template<typename T, template <typename> class K, | |
| typename M> | |
| int foo() { | |
| Foo<int>{}.func<T>(); | |
| return 5; | |
| } | |
| int bar() { | |
| return foo<int, Foo, Foo<float>>(); | |
| } | |
| int main() { return bar(); } | |
| #--- commands.input | |
| settings set -f frame-format "custom-frame '${function.template-arguments}'\n" | |
| break set -n func | |
| run | |
| bt | |
| # CHECK: custom-frame '<int>' | |
| # CHECK: custom-frame '<int, Foo, Foo<float>>' | |
| # CHECK: custom-frame '' |