[Lldb-commits] [lldb] 7ec8a33 - [lldb] Display breakpoint locations using display name (#90297)
via lldb-commits
lldb-commits at lists.llvm.org
Wed May 8 15:07:18 PDT 2024
Author: Dave Lee
Date: 2024-05-08T15:07:14-07:00
New Revision: 7ec8a333b5fdf1ee78426fe3557c330aa920aa5f
URL: https://github.com/llvm/llvm-project/commit/7ec8a333b5fdf1ee78426fe3557c330aa920aa5f
DIFF: https://github.com/llvm/llvm-project/commit/7ec8a333b5fdf1ee78426fe3557c330aa920aa5f.diff
LOG: [lldb] Display breakpoint locations using display name (#90297)
Adds a `show_function_display_name` parameter to
`SymbolContext::DumpStopContext`. This
parameter defaults to false, but `BreakpointLocation::GetDescription`
sets it to true.
This is NFC in mainline lldb, and will be used to modify how Swift
breakpoint locations are printed.
Added:
Modified:
lldb/include/lldb/Symbol/SymbolContext.h
lldb/source/Breakpoint/BreakpointLocation.cpp
lldb/source/Core/Address.cpp
lldb/source/Symbol/SymbolContext.cpp
Removed:
################################################################################
diff --git a/lldb/include/lldb/Symbol/SymbolContext.h b/lldb/include/lldb/Symbol/SymbolContext.h
index bd33a71b46ca..0bc707070f85 100644
--- a/lldb/include/lldb/Symbol/SymbolContext.h
+++ b/lldb/include/lldb/Symbol/SymbolContext.h
@@ -158,6 +158,7 @@ class SymbolContext {
Stream *s, ExecutionContextScope *exe_scope, const Address &so_addr,
bool show_fullpaths, bool show_module, bool show_inlined_frames,
bool show_function_arguments, bool show_function_name,
+ bool show_function_display_name = false,
std::optional<Stream::HighlightSettings> settings = std::nullopt) const;
/// Get the address range contained within a symbol context.
diff --git a/lldb/source/Breakpoint/BreakpointLocation.cpp b/lldb/source/Breakpoint/BreakpointLocation.cpp
index b48ec1398d63..41911fad41c6 100644
--- a/lldb/source/Breakpoint/BreakpointLocation.cpp
+++ b/lldb/source/Breakpoint/BreakpointLocation.cpp
@@ -507,7 +507,7 @@ void BreakpointLocation::GetDescription(Stream *s,
else
s->PutCString("where = ");
sc.DumpStopContext(s, m_owner.GetTarget().GetProcessSP().get(), m_address,
- false, true, false, true, true);
+ false, true, false, true, true, true);
} else {
if (sc.module_sp) {
s->EOL();
diff --git a/lldb/source/Core/Address.cpp b/lldb/source/Core/Address.cpp
index b23398883fa5..5a4751bd5256 100644
--- a/lldb/source/Core/Address.cpp
+++ b/lldb/source/Core/Address.cpp
@@ -645,7 +645,8 @@ bool Address::Dump(Stream *s, ExecutionContextScope *exe_scope, DumpStyle style,
pointer_sc.symbol != nullptr) {
s->PutCString(": ");
pointer_sc.DumpStopContext(s, exe_scope, so_addr, true, false,
- false, true, true, settings);
+ false, true, true, false,
+ settings);
}
}
}
@@ -685,7 +686,7 @@ bool Address::Dump(Stream *s, ExecutionContextScope *exe_scope, DumpStyle style,
sc.DumpStopContext(s, exe_scope, *this, show_fullpaths,
show_module, show_inlined_frames,
show_function_arguments, show_function_name,
- settings);
+ false, settings);
} else {
// We found a symbol but it was in a
diff erent section so it
// isn't the symbol we should be showing, just show the section
diff --git a/lldb/source/Symbol/SymbolContext.cpp b/lldb/source/Symbol/SymbolContext.cpp
index f368896fbad4..8f26e41d1920 100644
--- a/lldb/source/Symbol/SymbolContext.cpp
+++ b/lldb/source/Symbol/SymbolContext.cpp
@@ -73,6 +73,7 @@ bool SymbolContext::DumpStopContext(
Stream *s, ExecutionContextScope *exe_scope, const Address &addr,
bool show_fullpaths, bool show_module, bool show_inlined_frames,
bool show_function_arguments, bool show_function_name,
+ bool show_function_display_name,
std::optional<Stream::HighlightSettings> settings) const {
bool dumped_something = false;
if (show_module && module_sp) {
@@ -93,6 +94,8 @@ bool SymbolContext::DumpStopContext(
ConstString name;
if (!show_function_arguments)
name = function->GetNameNoArguments();
+ if (!name && show_function_display_name)
+ name = function->GetDisplayName();
if (!name)
name = function->GetName();
if (name)
@@ -146,7 +149,8 @@ bool SymbolContext::DumpStopContext(
const bool show_function_name = true;
return inline_parent_sc.DumpStopContext(
s, exe_scope, inline_parent_addr, show_fullpaths, show_module,
- show_inlined_frames, show_function_arguments, show_function_name);
+ show_inlined_frames, show_function_arguments, show_function_name,
+ show_function_display_name);
}
} else {
if (line_entry.IsValid()) {
@@ -164,7 +168,12 @@ bool SymbolContext::DumpStopContext(
dumped_something = true;
if (symbol->GetType() == eSymbolTypeTrampoline)
s->PutCString("symbol stub for: ");
- s->PutCStringColorHighlighted(symbol->GetName().GetStringRef(), settings);
+ ConstString name;
+ if (show_function_display_name)
+ name = symbol->GetDisplayName();
+ if (!name)
+ name = symbol->GetName();
+ s->PutCStringColorHighlighted(name.GetStringRef(), settings);
}
if (addr.IsValid() && symbol->ValueIsAddress()) {
More information about the lldb-commits
mailing list