aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/Shell/Settings/TestFrameFormatName.test
blob: 8da08a3a82875340f983e2809f97ebd15a87feb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Not run on Windows because we are not able to break on all the required functions.
# Even if we could, function.name* formatting also does not work correctly:
# https://github.com/llvm/llvm-project/issues/143149
# UNSUPPORTED: system-windows

# Test different name formats.

# RUN: %build %S/Inputs/names.cpp --std c++17 -o %t.out
# RUN: split-file %s %t

#--- name_with_args.input
# RUN: %lldb -b -s %t/name_with_args.input %t.out | FileCheck %s --check-prefix=NAME_WITH_ARGS
settings set -f frame-format "frame ${function.name-with-args}\n"
break set -n foo
break set -n operator<<
break set -n returns_func_ptr
break set -n inlined_foo
run
# NAME_WITH_ARGS: frame int ns::foo<int ()>(t={{.*}})
c
# NAME_WITH_ARGS: frame int ns::foo<int ()>(str="bar")
c
# NAME_WITH_ARGS: frame int ns::foo<(anonymous namespace)::$_0>(t=(anonymous namespace)::(unnamed class) @ {{.*}})
c
# NAME_WITH_ARGS: frame int ns::foo<int (*)()>(t=({{.*}}`(anonymous namespace)::anon_bar() at {{.*}}))
c
# NAME_WITH_ARGS: frame int ns::foo<void (Foo::*)(int (*)(int)) const noexcept>(str="method")
c
# NAME_WITH_ARGS: frame detail::Quux<double> (* (*ns::returns_func_ptr<int>((null)={{.*}}))(int))(float)
c
# NAME_WITH_ARGS: frame void Foo::foo<int (*)()>(this={{.*}}, arg=({{.*}}`(anonymous namespace)::anon_bar() at {{.*}}))
c
# NAME_WITH_ARGS: frame void Foo::operator<<<1>(this={{.*}}, (null)=0)
c
# NAME_WITH_ARGS: frame detail::Quux<double> (* (*Foo::returns_func_ptr<int>(this={{.*}}, (null)={{.*}}))(int))(float) const
c
# NAME_WITH_ARGS: frame inlined_foo(str="bar")
q

#--- name.input
# RUN: %lldb -b -s %t/name.input %t.out | FileCheck %s --check-prefix=NAME
settings set -f frame-format "frame ${function.name}\n"
break set -n inlined_foo
run
# NAME: frame inlined_foo(char const*)

#--- name_without_args.input
# RUN: %lldb -b -s %t/name_without_args.input %t.out | FileCheck %s --check-prefix=NAME_WITHOUT_ARGS
settings set -f frame-format "frame ${function.name-without-args}\n"
break set -n inlined_foo
run
# NAME_WITHOUT_ARGS: frame inlined_foo

#--- mangled_name.input
# RUN: %lldb -b -s %t/mangled_name.input %t.out | FileCheck %s --check-prefix=MANGLED_NAME
settings set -f frame-format "frame ${function.mangled-name}\n"
break set -n inlined_foo
run
# MANGLED_NAME: frame _Z11inlined_fooPKc