| # Test the ${function.is-inlined} frame-format variable. | |
| # Windows' link.exe does not preserve DWARF information, and we cannot get | |
| # inlining information from PDB at this time, see: | |
| # https://github.com/llvm/llvm-project/issues/143104 | |
| # REQUIRES: (system-windows && lld) || !system-windows | |
| # RUN: split-file %s %t | |
| # RUN: %clangxx_host -g -gdwarf %t/main.cpp -o %t.out %if system-windows %{-fuse-ld=lld%} | |
| # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ | |
| # RUN: | FileCheck %s | |
| #--- main.cpp | |
| void regular(); | |
| [[clang::always_inline]] void inlined1() { | |
| regular(); | |
| } | |
| void regular() {inlined1();} | |
| [[clang::always_inline]] void inlined2() {regular();} | |
| int main() { | |
| inlined2(); | |
| return 0; | |
| } | |
| #--- commands.input | |
| settings set frame-format "frame '${function.name}{${function.is-inlined} (Inlined)}'\n" | |
| breakpoint set -n inlined1 | |
| run | |
| bt | |
| # CHECK: (lldb) bt | |
| # CHECK: frame '{{.*}}inlined1({{.*}}) (Inlined)' | |
| # CHECK-NEXT: frame '{{.*}}regular({{.*}})' | |
| # CHECK-NEXT: frame '{{.*}}inlined2({{.*}}) (Inlined)' | |
| # CHECK-NEXT: frame 'main' |