[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 <medismail.bennani@gmail.com>
This commit is contained in:
@@ -137,8 +137,14 @@ class ScriptedProcesTestCase(TestBase):
|
||||
|
||||
target_1 = self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
|
||||
self.assertTrue(target_1, VALID_TARGET)
|
||||
|
||||
# We still need to specify a PID when attaching even for scripted processes
|
||||
attach_info = lldb.SBAttachInfo(42)
|
||||
attach_info.SetProcessPluginName("ScriptedProcess")
|
||||
attach_info.SetScriptedProcessClassName("dummy_scripted_process.DummyScriptedProcess")
|
||||
|
||||
error = lldb.SBError()
|
||||
process_1 = target_1.Launch(launch_info, error)
|
||||
process_1 = target_1.Attach(attach_info, error)
|
||||
self.assertTrue(process_1 and process_1.IsValid(), PROCESS_IS_VALID)
|
||||
self.assertEqual(process_1.GetProcessID(), 42)
|
||||
self.assertEqual(process_1.GetNumThreads(), 1)
|
||||
|
||||
Reference in New Issue
Block a user