| # 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' |