aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
diff options
context:
space:
mode:
authorMed Ismail Bennani <ismail@bennani.ma>2023-07-21 16:43:24 -0700
committerMed Ismail Bennani <ismail@bennani.ma>2023-07-21 18:47:46 -0700
commit57bd882343f8e4cca598b6ad47da93476cffb987 (patch)
treed95844a2c7104133e153a9b8ecb9663aea706e58 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
parentaa34b34e93d444efec6cd894e5e55927d0e413e6 (diff)
downloadllvm-57bd882343f8e4cca598b6ad47da93476cffb987.zip
llvm-57bd882343f8e4cca598b6ad47da93476cffb987.tar.gz
llvm-57bd882343f8e4cca598b6ad47da93476cffb987.tar.bz2
[lldb] Convert script native types to StructuredData counterpart
This patch adds the ability to pass native types from the script interpreter to methods that use a {SB,}StructuredData argument. To do so, this patch changes the `ScriptedObject` struture that holds the pointer to the script object as well as the originating script interpreter language. It also exposes that to the SB API via a new class called `SBScriptObject`. This structure allows the debugger to parse the script object and convert it to a StructuredData object. If the type is not compatible with the StructuredData types, we will store its pointer in a `StructuredData::Generic` object. This patch also adds some SWIG typemaps that checks the input argument to ensure it's either an SBStructuredData object, in which case it just passes it throught, or a python object that is NOT another SB type, to provide some guardrails for the user. rdar://111467140 Differential Revision: https://reviews.llvm.org/D155161 Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h')
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
index 55ade49..01db6c5 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
@@ -83,6 +83,9 @@ public:
std::string &error_str,
lldb::ThreadPlanSP thread_plan) override;
+ StructuredData::ObjectSP
+ CreateStructuredDataFromScriptObject(ScriptObject obj) override;
+
bool ScriptedThreadPlanExplainsStop(StructuredData::ObjectSP implementor_sp,
Event *event,
bool &script_error) override;