From 59d8dd79e1f9dead2dc2756e139073083e487228 Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Wed, 6 Oct 2021 00:09:20 +0000 Subject: [lldb/Plugins] Add support for ScriptedThread in ScriptedProcess This patch introduces the `ScriptedThread` class with its python interface. When used with `ScriptedProcess`, `ScriptedThreaad` can provide various information such as the thread state, stop reason or even its register context. This can be used to reconstruct the program stack frames using lldb's unwinder. rdar://74503836 Differential Revision: https://reviews.llvm.org/D107585 Signed-off-by: Med Ismail Bennani --- .../Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.cpp') diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.cpp index a38cb10..e8fb38e 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.cpp @@ -36,6 +36,14 @@ ScriptedPythonInterface::GetStatusFromMethod(llvm::StringRef method_name) { } template <> +StructuredData::DictionarySP +ScriptedPythonInterface::ExtractValueFromPythonObject< + StructuredData::DictionarySP>(python::PythonObject &p, Status &error) { + python::PythonDictionary result_dict(python::PyRefType::Borrowed, p.get()); + return result_dict.CreateStructuredDictionary(); +} + +template <> Status ScriptedPythonInterface::ExtractValueFromPythonObject( python::PythonObject &p, Status &error) { if (lldb::SBError *sb_error = reinterpret_cast( -- cgit v1.1