[Lldb-commits] [lldb] 2abf997 - [lldb] Fix assertions caused by un-checked errors in ScriptedProcess
Med Ismail Bennani via lldb-commits
lldb-commits at lists.llvm.org
Wed Oct 25 17:31:17 PDT 2023
Author: Med Ismail Bennani
Date: 2023-10-25T17:31:02-07:00
New Revision: 2abf997f8272e88d1a17138da61448bac721b6c1
URL: https://github.com/llvm/llvm-project/commit/2abf997f8272e88d1a17138da61448bac721b6c1
DIFF: https://github.com/llvm/llvm-project/commit/2abf997f8272e88d1a17138da61448bac721b6c1.diff
LOG: [lldb] Fix assertions caused by un-checked errors in ScriptedProcess
This patch should fix some assertion that started getting hit after f22d82c.
That commit changed the scripted object plugin creation to use
`llvm::Expected<T>` as a return type to enforce error handling, however
I forgot to handle the error which caused the assert.
The interesting part about this, is that since that assert was triggered
in the ScriptedProcess constructor (where the `llvm::Error` wasn't
handled), that impacted every test that launched any kind of process,
since the process plugin manager would eventually also iterate over the
`ScriptedProcess::Create` factory method.
This patch should fix the assertions by handling the errors.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Added:
Modified:
lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
index e0e6693399dec3a..f2a647c1b0bea4c 100644
--- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
+++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
@@ -113,6 +113,7 @@ ScriptedProcess::ScriptedProcess(lldb::TargetSP target_sp,
m_scripted_metadata.GetArgsSP());
if (!obj_or_err) {
+ llvm::consumeError(obj_or_err.takeError());
error.SetErrorString("Failed to create script object.");
return;
}
diff --git a/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp b/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
index 5a955fa14009265..aa2796db15cd00a 100644
--- a/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
+++ b/lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
@@ -60,9 +60,11 @@ ScriptedThread::Create(ScriptedProcess &process,
thread_class_name, exe_ctx, process.m_scripted_metadata.GetArgsSP(),
script_object);
- if (!obj_or_err)
+ if (!obj_or_err) {
+ llvm::consumeError(obj_or_err.takeError());
return llvm::createStringError(llvm::inconvertibleErrorCode(),
"Failed to create script object.");
+ }
StructuredData::GenericSP owned_script_object_sp = *obj_or_err;
More information about the lldb-commits
mailing list