[lldb] Add ScriptedPlatform python implementation
This patch introduces both the Scripted Platform python base implementation and an example for it. The base implementation is embedded in lldb python module under `lldb.plugins.scripted_platform`. This patch also refactor the various SWIG methods to create scripted objects into a single method, that is now shared between the Scripted Platform, Process and Thread. It also replaces the target argument by a execution context object. Differential Revision: https://reviews.llvm.org/D139250 Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
This commit is contained in:
1 parent
2d53527e9c
commit
bb4ccc6688
13 files changed
+176
-82
No files matched your search
@@ -35,7 +35,6 @@ StructuredData::GenericSP ScriptedThreadPythonInterface::CreatePluginObject(
|
||||
if (class_name.empty() && !script_obj)
|
||||
return {};
|
||||
|
||||
ProcessSP process_sp = exe_ctx.GetProcessSP();
|
||||
StructuredDataImpl args_impl(args_sp);
|
||||
std::string error_string;
|
||||
|
||||
@@ -44,11 +43,13 @@ StructuredData::GenericSP ScriptedThreadPythonInterface::CreatePluginObject(
|
||||
|
||||
PythonObject ret_val;
|
||||
|
||||
if (!script_obj)
|
||||
ret_val = LLDBSwigPythonCreateScriptedThread(
|
||||
class_name.str().c_str(), m_interpreter.GetDictionaryName(), process_sp,
|
||||
args_impl, error_string);
|
||||
else
|
||||
if (!script_obj) {
|
||||
lldb::ExecutionContextRefSP exe_ctx_ref_sp =
|
||||
std::make_shared<ExecutionContextRef>(exe_ctx);
|
||||
ret_val = LLDBSwigPythonCreateScriptedObject(
|
||||
class_name.str().c_str(), m_interpreter.GetDictionaryName(),
|
||||
exe_ctx_ref_sp, args_impl, error_string);
|
||||
} else
|
||||
ret_val = PythonObject(PyRefType::Borrowed,
|
||||
static_cast<PyObject *>(script_obj->GetValue()));
|
||||
|
||||
|
||||
Reference in new issue
Block a user