Revert "[lldb] Fix SWIG wrapper compilation error"

...and "[lldb/Interpreter] Introduce `ScriptedStopHook{,Python}Interface` & make use of it (#105449)"

This reverts commit 76b827bb4d, and commit 1e131ddfa8
because the first commit caused the test command-stop-hook-output.test to fail.
This commit is contained in:
David Spickett
2024-09-20 09:52:32 +00:00
parent 413b12a5ab
commit 801046e330
21 changed files with 221 additions and 298 deletions

View File

@@ -1559,11 +1559,6 @@ ScriptInterpreterPythonImpl::CreateScriptedProcessInterface() {
return std::make_unique<ScriptedProcessPythonInterface>(*this);
}
ScriptedStopHookInterfaceSP
ScriptInterpreterPythonImpl::CreateScriptedStopHookInterface() {
return std::make_shared<ScriptedStopHookPythonInterface>(*this);
}
ScriptedThreadInterfaceSP
ScriptInterpreterPythonImpl::CreateScriptedThreadInterface() {
return std::make_shared<ScriptedThreadPythonInterface>(*this);
@@ -1659,6 +1654,57 @@ ScriptInterpreterPythonImpl::ScriptedBreakpointResolverSearchDepth(
return lldb::eSearchDepthModule;
}
StructuredData::GenericSP ScriptInterpreterPythonImpl::CreateScriptedStopHook(
TargetSP target_sp, const char *class_name,
const StructuredDataImpl &args_data, Status &error) {
if (!target_sp) {
error = Status::FromErrorString("No target for scripted stop-hook.");
return StructuredData::GenericSP();
}
if (class_name == nullptr || class_name[0] == '\0') {
error = Status::FromErrorString("No class name for scripted stop-hook.");
return StructuredData::GenericSP();
}
ScriptInterpreterPythonImpl *python_interpreter =
GetPythonInterpreter(m_debugger);
if (!python_interpreter) {
error = Status::FromErrorString(
"No script interpreter for scripted stop-hook.");
return StructuredData::GenericSP();
}
Locker py_lock(this,
Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
PythonObject ret_val = SWIGBridge::LLDBSwigPythonCreateScriptedStopHook(
target_sp, class_name, python_interpreter->m_dictionary_name.c_str(),
args_data, error);
return StructuredData::GenericSP(
new StructuredPythonObject(std::move(ret_val)));
}
bool ScriptInterpreterPythonImpl::ScriptedStopHookHandleStop(
StructuredData::GenericSP implementor_sp, ExecutionContext &exc_ctx,
lldb::StreamSP stream_sp) {
assert(implementor_sp &&
"can't call a stop hook with an invalid implementor");
assert(stream_sp && "can't call a stop hook with an invalid stream");
Locker py_lock(this,
Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
lldb::ExecutionContextRefSP exc_ctx_ref_sp(new ExecutionContextRef(exc_ctx));
bool ret_val = SWIGBridge::LLDBSwigPythonStopHookCallHandleStop(
implementor_sp->GetValue(), exc_ctx_ref_sp, stream_sp);
return ret_val;
}
StructuredData::ObjectSP
ScriptInterpreterPythonImpl::LoadPluginModule(const FileSpec &file_spec,
lldb_private::Status &error) {