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()) { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits