From b9d4c94a603d3cc1f44ab7dd1d4f3ae9c80da98b Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Fri, 3 Mar 2023 15:17:59 -0800 Subject: [lldb/Plugins] Add Attach capabilities to ScriptedProcess This patch adds process attach capabilities to the ScriptedProcess plugin. This doesn't really expects a PID or process name, since the process state is already script, however, this allows to create a scripted process without requiring to have an executuble in the target. In order to do so, this patch also turns the scripted process related getters and setters from the `ProcessLaunchInfo` and `ProcessAttachInfo` classes to a `ScriptedMetadata` instance and moves it in the `ProcessInfo` class, so it can be accessed interchangeably. This also adds the necessary SWIG wrappers to convert the internal `Process{Attach,Launch}InfoSP` into a `SB{Attach,Launch}Info` to pass it as argument the scripted process python implementation and convert it back to the internal representation. rdar://104577406 Differential Revision: https://reviews.llvm.org/D143104 Signed-off-by: Med Ismail Bennani --- .../ScriptInterpreter/Python/PythonTestSuite.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp') diff --git a/lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp b/lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp index 75391e2..1a8ad86 100644 --- a/lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp +++ b/lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp @@ -139,6 +139,14 @@ void *lldb_private::LLDBSWIGPython_CastPyObjectToSBData(PyObject *data) { return nullptr; } +void *lldb_private::LLDBSWIGPython_CastPyObjectToSBAttachInfo(PyObject *data) { + return nullptr; +} + +void *lldb_private::LLDBSWIGPython_CastPyObjectToSBLaunchInfo(PyObject *data) { + return nullptr; +} + void *lldb_private::LLDBSWIGPython_CastPyObjectToSBError(PyObject *data) { return nullptr; } @@ -268,3 +276,13 @@ bool lldb_private::LLDBSwigPythonStopHookCallHandleStop( python::PythonObject lldb_private::python::ToSWIGWrapper(const Status &status) { return python::PythonObject(); } + +python::PythonObject +lldb_private::python::ToSWIGWrapper(lldb::ProcessAttachInfoSP) { + return python::PythonObject(); +} + +python::PythonObject +lldb_private::python::ToSWIGWrapper(lldb::ProcessLaunchInfoSP) { + return python::PythonObject(); +} -- cgit v1.1