xref: /llvm-project/lldb/test/Shell/Settings/TestFrameFormatName.test (revision f4ede08c61cba631de204398a91aa59bac9d5db9)
1# UNSUPPORTED: system-windows
2# Test different name formats.
3
4# RUN: %build %S/Inputs/names.cpp --std c++17 -o %t.out
5# RUN: split-file %s %t
6
7#--- name_with_args.input
8# RUN: %lldb -b -s %t/name_with_args.input %t.out | FileCheck %s --check-prefix=NAME_WITH_ARGS
9settings set -f frame-format "frame ${function.name-with-args}\n"
10break set -n foo
11break set -n operator<<
12break set -n returns_func_ptr
13break set -n inlined_foo
14run
15# NAME_WITH_ARGS: frame int ns::foo<int ()>(t={{.*}})
16c
17# NAME_WITH_ARGS: frame int ns::foo<int ()>(str="bar")
18c
19# NAME_WITH_ARGS: frame int ns::foo<(anonymous namespace)::$_0>(t=(anonymous namespace)::(unnamed class) @ {{.*}})
20c
21# NAME_WITH_ARGS: frame int ns::foo<int (*)()>(t=({{.*}}`(anonymous namespace)::anon_bar() at {{.*}}))
22c
23# NAME_WITH_ARGS: frame int ns::foo<void (Foo::*)(int (*)(int)) const noexcept>(str="method")
24c
25# NAME_WITH_ARGS: frame ns::returns_func_ptr<int>((null)={{.*}})
26c
27# NAME_WITH_ARGS: frame void Foo::foo<int (*)()>(this={{.*}}, arg=({{.*}}`(anonymous namespace)::anon_bar() at {{.*}}))
28c
29# NAME_WITH_ARGS: frame void Foo::operator<<<1>(this={{.*}}, (null)=0)
30c
31# NAME_WITH_ARGS: frame Foo::returns_func_ptr<int>(this={{.*}}, (null)={{.*}})
32c
33# NAME_WITH_ARGS: frame main [inlined] inlined_foo(str="bar")
34q
35
36#--- name.input
37# RUN: %lldb -b -s %t/name.input %t.out | FileCheck %s --check-prefix=NAME
38settings set -f frame-format "frame ${function.name}\n"
39break set -n inlined_foo
40run
41# NAME: frame main [inlined] inlined_foo(char const*)
42
43#--- name_without_args.input
44# RUN: %lldb -b -s %t/name_without_args.input %t.out | FileCheck %s --check-prefix=NAME_WITHOUT_ARGS
45settings set -f frame-format "frame ${function.name-without-args}\n"
46break set -n inlined_foo
47run
48# NAME_WITHOUT_ARGS: frame main [inlined] inlined_foo(char const*)
49
50#--- mangled_name.input
51# RUN: %lldb -b -s %t/mangled_name.input %t.out | FileCheck %s --check-prefix=MANGLED_NAME
52settings set -f frame-format "frame ${function.mangled-name}\n"
53break set -n inlined_foo
54run
55# MANGLED_NAME: frame main [inlined] inlined_foo(char const*)
56