diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2023-03-03 15:17:59 -0800 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2023-03-03 19:33:02 -0800 |
commit | b9d4c94a603d3cc1f44ab7dd1d4f3ae9c80da98b (patch) | |
tree | 90feabcf06c5b2079bfa1ccfa75a8167eb1b28e7 /lldb/source/Commands/CommandObjectProcess.cpp | |
parent | 3014a1c5a130daeb73f6d3b7280c5ceaeadc66a8 (diff) | |
download | llvm-b9d4c94a603d3cc1f44ab7dd1d4f3ae9c80da98b.zip llvm-b9d4c94a603d3cc1f44ab7dd1d4f3ae9c80da98b.tar.gz llvm-b9d4c94a603d3cc1f44ab7dd1d4f3ae9c80da98b.tar.bz2 |
[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>
Diffstat (limited to 'lldb/source/Commands/CommandObjectProcess.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectProcess.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp index ff9992a..4362b25 100644 --- a/lldb/source/Commands/CommandObjectProcess.cpp +++ b/lldb/source/Commands/CommandObjectProcess.cpp @@ -201,10 +201,9 @@ protected: if (!m_class_options.GetName().empty()) { m_options.launch_info.SetProcessPluginName("ScriptedProcess"); - m_options.launch_info.SetScriptedProcessClassName( - m_class_options.GetName()); - m_options.launch_info.SetScriptedProcessDictionarySP( - m_class_options.GetStructuredData()); + ScriptedMetadataSP metadata_sp = std::make_shared<ScriptedMetadata>( + m_class_options.GetName(), m_class_options.GetStructuredData()); + m_options.launch_info.SetScriptedMetadata(metadata_sp); target->SetProcessLaunchInfo(m_options.launch_info); } @@ -356,10 +355,9 @@ protected: if (!m_class_options.GetName().empty()) { m_options.attach_info.SetProcessPluginName("ScriptedProcess"); - m_options.attach_info.SetScriptedProcessClassName( - m_class_options.GetName()); - m_options.attach_info.SetScriptedProcessDictionarySP( - m_class_options.GetStructuredData()); + ScriptedMetadataSP metadata_sp = std::make_shared<ScriptedMetadata>( + m_class_options.GetName(), m_class_options.GetStructuredData()); + m_options.attach_info.SetScriptedMetadata(metadata_sp); } // Record the old executable module, we want to issue a warning if the |