Adds new frame-format variables and implements them in the CPlusPlusLanguage plugin. We use the `DemangledNameInfo` type to retrieve the necessary part of the demangled name. https://github.com/llvm/llvm-project/pull/131836
43 lines
875 B
Plaintext
43 lines
875 B
Plaintext
# Test the ${function.formatted-arguments} frame-format variable.
|
|
|
|
# RUN: split-file %s %t
|
|
# RUN: %build %t/main.cpp -o %t.out
|
|
# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \
|
|
# RUN: | FileCheck %s
|
|
|
|
#--- main.cpp
|
|
struct Foo {
|
|
void func() {}
|
|
};
|
|
|
|
void bar() {
|
|
Foo{}.func();
|
|
}
|
|
|
|
void foo(int, int x) {
|
|
bar();
|
|
}
|
|
|
|
void myFunc(char const * str,
|
|
void (*fptr)(int, int)) {
|
|
fptr(5, 10);
|
|
}
|
|
|
|
int main(int argc, char const *argv[]) {
|
|
myFunc("hello", &foo);
|
|
return 0;
|
|
}
|
|
|
|
#--- commands.input
|
|
settings set -f frame-format "custom-frame '${function.formatted-arguments}'\n"
|
|
break set -n func
|
|
|
|
run
|
|
bt
|
|
|
|
# CHECK: custom-frame '(this={{.*}})'
|
|
# CHECK: custom-frame '()'
|
|
# CHECK: custom-frame '((null)=5, x=10)'
|
|
# CHECK: custom-frame '(str="hello", fptr=({{.*}}.out`foo(int, int) at main.cpp:{{[0-9]+}}))'
|
|
# CHECK: custom-frame '(argc=1, argv={{.*}})'
|