aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Interpreter/CommandObject.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2025-01-31 13:23:26 -0800
committerGitHub <noreply@github.com>2025-01-31 13:23:26 -0800
commit6deee0d5b36c8b4b83209759df8d4933e4922bc8 (patch)
tree873de1bfbe54afbfc2410c22ce1003f063e552bd /lldb/source/Interpreter/CommandObject.cpp
parente6d12ad791f6eabb53623664a1563996efce44f7 (diff)
downloadllvm-6deee0d5b36c8b4b83209759df8d4933e4922bc8.zip
llvm-6deee0d5b36c8b4b83209759df8d4933e4922bc8.tar.gz
llvm-6deee0d5b36c8b4b83209759df8d4933e4922bc8.tar.bz2
[lldb] Use llvm::Error instead of CommandReturnObject for error reporting (#125125)
Use `llvm::Error` instead of `CommandReturnObject` for error reporting. The command return objects were populated with errors but never displayed. With this patch they're at least logged.
Diffstat (limited to 'lldb/source/Interpreter/CommandObject.cpp')
-rw-r--r--lldb/source/Interpreter/CommandObject.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/lldb/source/Interpreter/CommandObject.cpp b/lldb/source/Interpreter/CommandObject.cpp
index 559e2e7..7008253 100644
--- a/lldb/source/Interpreter/CommandObject.cpp
+++ b/lldb/source/Interpreter/CommandObject.cpp
@@ -120,17 +120,24 @@ bool CommandObject::ParseOptions(Args &args, CommandReturnObject &result) {
if (args_or) {
args = std::move(*args_or);
error = options->NotifyOptionParsingFinished(&exe_ctx);
- } else
+ } else {
error = Status::FromError(args_or.takeError());
+ }
- if (error.Success()) {
- if (options->VerifyOptions(result))
- return true;
- } else {
+ if (error.Fail()) {
result.SetError(error.takeError());
+ result.SetStatus(eReturnStatusFailed);
+ return false;
}
- result.SetStatus(eReturnStatusFailed);
- return false;
+
+ if (llvm::Error error = options->VerifyOptions()) {
+ result.SetError(std::move(error));
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
+
+ result.SetStatus(eReturnStatusSuccessFinishNoResult);
+ return true;
}
return true;
}