https://github.com/Michael137 created https://github.com/llvm/llvm-project/pull/137757
Reverts llvm/llvm-project#137408 >From f7159a00fdd1950dbac5c24f532a13af76af44a5 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Tue, 29 Apr 2025 07:03:26 +0100 Subject: [PATCH] =?UTF-8?q?Revert=20"[lldb][Format]=20Make=20function=20na?= =?UTF-8?q?me=20frame-format=20variables=20work=20without=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit cebf86eb1de163faaf5f9781f6bbded70dc1f9f0. --- lldb/source/Core/FormatEntity.cpp | 9 ++--- .../Language/CPlusPlus/CPlusPlusLanguage.cpp | 38 +------------------ .../TestFrameFormatFunctionBasename.test | 4 -- ...FrameFormatFunctionFormattedArguments.test | 9 ----- .../TestFrameFormatFunctionQualifiers.test | 4 -- .../TestFrameFormatFunctionReturn.test | 4 -- .../TestFrameFormatFunctionScope.test | 7 +--- ...tFrameFormatFunctionTemplateArguments.test | 8 +--- 8 files changed, 10 insertions(+), 73 deletions(-) diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp index a2410048e5a89..6cdfcfedf8be5 100644 --- a/lldb/source/Core/FormatEntity.cpp +++ b/lldb/source/Core/FormatEntity.cpp @@ -1809,12 +1809,11 @@ bool FormatEntity::Format(const Entry &entry, Stream &s, case Entry::Type::FunctionReturnRight: case Entry::Type::FunctionReturnLeft: case Entry::Type::FunctionQualifiers: { - Language *language_plugin = nullptr; - if (sc->function) - language_plugin = Language::FindPlugin(sc->function->GetLanguage()); - else if (sc->symbol) - language_plugin = Language::FindPlugin(sc->symbol->GetLanguage()); + if (!sc->function) + return false; + Language *language_plugin = + Language::FindPlugin(sc->function->GetLanguage()); if (!language_plugin) return false; diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index ab8e9883868ce..283e867d53bb7 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -381,34 +381,6 @@ GetDemangledScope(const SymbolContext &sc) { return demangled_name.slice(info->ScopeRange.first, info->ScopeRange.second); } -static bool PrintDemangledArgumentList(Stream &s, const SymbolContext &sc) { - assert(sc.symbol); - - Mangled mangled = sc.GetPossiblyInlinedFunctionName(); - if (!mangled) - return false; - - auto demangled_name = mangled.GetDemangledName().GetStringRef(); - if (demangled_name.empty()) - return false; - - const std::optional<DemangledNameInfo> &info = mangled.GetDemangledInfo(); - if (!info) - return false; - - // Function without a basename is nonsense. - if (!info->hasBasename()) - return false; - - if (info->ArgumentsRange.second < info->ArgumentsRange.first) - return false; - - s << demangled_name.slice(info->ArgumentsRange.first, - info->ArgumentsRange.second); - - return true; -} - bool CPlusPlusLanguage::CxxMethodName::TrySimplifiedParse() { // This method tries to parse simple method definitions which are presumably // most comman in user programs. Definitions that can be parsed by this @@ -1918,6 +1890,8 @@ bool CPlusPlusLanguage::GetFunctionDisplayName( bool CPlusPlusLanguage::HandleFrameFormatVariable( const SymbolContext &sc, const ExecutionContext *exe_ctx, FormatEntity::Entry::Type type, Stream &s) { + assert(sc.function); + switch (type) { case FormatEntity::Entry::Type::FunctionScope: { std::optional<llvm::StringRef> scope = GetDemangledScope(sc); @@ -1951,14 +1925,6 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable( } case FormatEntity::Entry::Type::FunctionFormattedArguments: { - // This ensures we print the arguments even when no debug-info is available. - // - // FIXME: we should have a Entry::Type::FunctionArguments and - // use it in the plugin.cplusplus.display.function-name-format - // once we have a "fallback operator" in the frame-format language. - if (!sc.function && sc.symbol) - return PrintDemangledArgumentList(s, sc); - VariableList args; if (auto variable_list_sp = GetFunctionVariableList(sc)) variable_list_sp->AppendVariablesWithScope(eValueTypeVariableArgument, diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test index c0008e50927b1..61af2b49886ec 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionBasename.test @@ -7,10 +7,6 @@ # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s # -# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out -# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ -# RUN: | FileCheck %s - #--- main.cpp namespace ns { template<typename T> diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test index 04f51701a2a2d..c4c9062b640f1 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionFormattedArguments.test @@ -6,10 +6,6 @@ # RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s -# -# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out -# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ -# RUN: | FileCheck %s --check-prefix=CHECK-NODEBUG #--- main.cpp struct Foo { @@ -46,8 +42,3 @@ bt # CHECK: custom-frame '({{.*}}=5, x=10)' # CHECK: custom-frame '(str="hello", fptr=({{.*}}.out`{{.*}}foo(int,{{.*}}int) at main.cpp:{{[0-9]+}}))' # CHECK: custom-frame '(argc=1, argv={{.*}})' - -# CHECK-NODEBUG: custom-frame '()' -# CHECK-NODEBUG: custom-frame '()' -# CHECK-NODEBUG: custom-frame '(int, int)' -# CHECK-NODEBUG: custom-frame '(char const*, void (*)(int, int))' diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test index b1dfe834c1deb..c4b74b7d7defa 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionQualifiers.test @@ -6,10 +6,6 @@ # RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s -# -# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out -# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ -# RUN: | FileCheck %s #--- main.cpp struct Foo { diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test index f913162a1aa66..ce970d4d24d86 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionReturn.test @@ -7,10 +7,6 @@ # RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out # RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s -# -# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out -# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ -# RUN: | FileCheck %s #--- main.cpp namespace ns::ns2 { diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test index a28c16f95a9e2..d98893aa5e8b4 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionScope.test @@ -4,11 +4,8 @@ # RUN: split-file %s %t # RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out -# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ -# RUN: | FileCheck %s -# -# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out -# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ +# RUN: %lldb -o "settings set interpreter.stop-command-source-on-error false" \ +# RUN: -x -b -s %t/commands.input %t.out -o exit 2>&1 \ # RUN: | FileCheck %s #--- main.cpp diff --git a/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test b/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test index ac8a32820c888..5687dd7fba26b 100644 --- a/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test +++ b/lldb/test/Shell/Settings/TestFrameFormatFunctionTemplateArguments.test @@ -3,12 +3,8 @@ # Test the ${function.template-arguments} frame-format variable. # RUN: split-file %s %t -# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.out -# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \ -# RUN: | FileCheck %s -# -# RUN: %clang_host -O0 %t/main.cpp -o %t-nodebug.out -# RUN: %lldb -x -b -s %t/commands.input %t-nodebug.out -o exit 2>&1 \ +# RUN: %clang_host -g -gdwarf %t/main.cpp -o %t.cxx.out +# RUN: %lldb -x -b -s %t/commands.input %t.cxx.out -o exit 2>&1 \ # RUN: | FileCheck %s #--- main.cpp _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits