[all-commits] [llvm/llvm-project] 84fdfb: [lldb] Store expression evaluator diagnostics in a...

Adrian Prantl via All-commits all-commits at lists.llvm.org
Fri Sep 27 16:10:14 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 84fdfb9ca63ee4304b486d7e85545ee4e1a46f5d
      https://github.com/llvm/llvm-project/commit/84fdfb9ca63ee4304b486d7e85545ee4e1a46f5d
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-09-27 (Fri, 27 Sep 2024)

  Changed paths:
    M lldb/include/lldb/Expression/DiagnosticManager.h
    M lldb/include/lldb/Utility/Status.h
    M lldb/source/Breakpoint/BreakpointLocation.cpp
    M lldb/source/Expression/DiagnosticManager.cpp
    M lldb/source/Expression/ExpressionParser.cpp
    M lldb/source/Expression/UserExpression.cpp
    M lldb/source/Expression/UtilityFunction.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h
    M lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
    M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Utility/Status.cpp
    M lldb/test/API/lang/objc/modules-compile-error/TestModulesCompileError.py
    M lldb/unittests/Expression/DiagnosticManagerTest.cpp

  Log Message:
  -----------
  [lldb] Store expression evaluator diagnostics in an llvm::Error (NFC) (#106442)

…NFC]

This patch is the first patch in a series reworking of Pete Lawrence's
(@PortalPete) amazing proposal for better expression evaluator error
messages (https://github.com/llvm/llvm-project/pull/80938)

This patch is preparatory patch for improving the rendering of
expression evaluator diagnostics. Currently diagnostics are rendered
into a string and the command interpreter layer then textually parses
words like "error:" to (sometimes) color the output accordingly. In
order to enable user interfaces to do better with diagnostics, we need
to store them in a machine-readable fromat. This patch does this by
adding a new llvm::Error kind wrapping a DiagnosticDetail struct that
is used when the error type is eErrorTypeExpression. Multiple
diagnostics are modeled using llvm::ErrorList.

Right now the extra information is not used by the CommandInterpreter,
this will be added in a follow-up patch!



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list