[Lldb-commits] [lldb] 0497c77 - [lldb] Print mangled names with verbose break list (#84071)
via lldb-commits
lldb-commits at lists.llvm.org
Wed Mar 6 16:25:26 PST 2024
Author: Felipe de Azevedo Piovezan
Date: 2024-03-06T16:25:22-08:00
New Revision: 0497c77e9e02f0dcccd42a6afd65d0356a5dbb57
URL: https://github.com/llvm/llvm-project/commit/0497c77e9e02f0dcccd42a6afd65d0356a5dbb57
DIFF: https://github.com/llvm/llvm-project/commit/0497c77e9e02f0dcccd42a6afd65d0356a5dbb57.diff
LOG: [lldb] Print mangled names with verbose break list (#84071)
When debugging LLDB itself, it can often be useful to know the mangled
name of the function where a breakpoint is set. Since the `--verbose`
setting of `break --list` is aimed at debugging LLDB, this patch makes
it so that the mangled name is also printed in that mode.
Note about testing: since mangling is not the same on Windows and Linux,
the test refrains from hardcoding mangled names.
Added:
Modified:
lldb/source/Breakpoint/BreakpointLocation.cpp
lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
Removed:
################################################################################
diff --git a/lldb/source/Breakpoint/BreakpointLocation.cpp b/lldb/source/Breakpoint/BreakpointLocation.cpp
index f7b8ca1f5506f3..b48ec1398d63e8 100644
--- a/lldb/source/Breakpoint/BreakpointLocation.cpp
+++ b/lldb/source/Breakpoint/BreakpointLocation.cpp
@@ -524,6 +524,12 @@ void BreakpointLocation::GetDescription(Stream *s,
s->EOL();
s->Indent("function = ");
s->PutCString(sc.function->GetName().AsCString("<unknown>"));
+ if (ConstString mangled_name =
+ sc.function->GetMangled().GetMangledName()) {
+ s->EOL();
+ s->Indent("mangled function = ");
+ s->PutCString(mangled_name.AsCString());
+ }
}
if (sc.line_entry.line > 0) {
diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py b/lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
index 129290909029a1..5179ffe730b9a0 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
@@ -82,7 +82,7 @@ def breakpoint_options_language_test(self):
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# This should create a breakpoint with 1 locations.
- lldbutil.run_break_set_by_symbol(
+ bp_id = lldbutil.run_break_set_by_symbol(
self,
"ns::func",
sym_exact=False,
@@ -90,6 +90,17 @@ def breakpoint_options_language_test(self):
num_expected_locations=1,
)
+ location = self.target().FindBreakpointByID(bp_id).GetLocationAtIndex(0)
+ function = location.GetAddress().GetFunction()
+ self.expect(
+ "breakpoint list -v",
+ "Verbose breakpoint list contains mangled names",
+ substrs=[
+ "function = ns::func",
+ f"mangled function = {function.GetMangledName()}",
+ ],
+ )
+
# This should create a breakpoint with 0 locations.
lldbutil.run_break_set_by_symbol(
self,
More information about the lldb-commits
mailing list