diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2021-03-23 16:22:18 +0000 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2021-03-23 18:24:47 +0100 |
commit | 1f6a57c1a0fad922e04a2b1f414b092d4b0cd8b0 (patch) | |
tree | 7be83ae7b17d0c59563fc1db05e8ff879cbbce21 /lldb/source/Interpreter/ScriptInterpreter.cpp | |
parent | 3e0ad115439622b9c3e6ca9fd64c7fb07a679f1a (diff) | |
download | llvm-1f6a57c1a0fad922e04a2b1f414b092d4b0cd8b0.zip llvm-1f6a57c1a0fad922e04a2b1f414b092d4b0cd8b0.tar.gz llvm-1f6a57c1a0fad922e04a2b1f414b092d4b0cd8b0.tar.bz2 |
[lldb/Interpreter] Add ScriptInterpreter Wrapper for ScriptedProcess
This patch adds a ScriptedProcess interface to the ScriptInterpreter and
more specifically, to the ScriptInterpreterPython.
This interface will be used in the C++ `ScriptProcess` Process Plugin to
call the script methods.
At the moment, not all methods are implemented, they will upstreamed in
upcoming patches.
This patch also adds helper methods to the ScriptInterpreter to
convert `SBAPI` Types (SBData & SBError) to `lldb_private` types
(DataExtractor & Status).
rdar://65508855
Differential Revision: https://reviews.llvm.org/D95711
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Diffstat (limited to 'lldb/source/Interpreter/ScriptInterpreter.cpp')
-rw-r--r-- | lldb/source/Interpreter/ScriptInterpreter.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lldb/source/Interpreter/ScriptInterpreter.cpp b/lldb/source/Interpreter/ScriptInterpreter.cpp index 2c55d08..d822ea2 100644 --- a/lldb/source/Interpreter/ScriptInterpreter.cpp +++ b/lldb/source/Interpreter/ScriptInterpreter.cpp @@ -26,9 +26,12 @@ using namespace lldb; using namespace lldb_private; -ScriptInterpreter::ScriptInterpreter(Debugger &debugger, - lldb::ScriptLanguage script_lang) - : m_debugger(debugger), m_script_lang(script_lang) {} +ScriptInterpreter::ScriptInterpreter( + Debugger &debugger, lldb::ScriptLanguage script_lang, + lldb::ScriptedProcessInterfaceUP scripted_process_interface_up) + : m_debugger(debugger), m_script_lang(script_lang), + m_scripted_process_interface_up( + std::move(scripted_process_interface_up)) {} void ScriptInterpreter::CollectDataForBreakpointCommandCallback( std::vector<BreakpointOptions *> &bp_options_vec, @@ -69,6 +72,19 @@ std::string ScriptInterpreter::LanguageToString(lldb::ScriptLanguage language) { llvm_unreachable("Unhandled ScriptInterpreter!"); } +lldb::DataExtractorSP +ScriptInterpreter::GetDataExtractorFromSBData(const lldb::SBData &data) const { + return data.m_opaque_sp; +} + +Status +ScriptInterpreter::GetStatusFromSBError(const lldb::SBError &error) const { + if (error.m_opaque_up) + return *error.m_opaque_up.get(); + + return Status(); +} + lldb::ScriptLanguage ScriptInterpreter::StringToLanguage(const llvm::StringRef &language) { if (language.equals_lower(LanguageToString(eScriptLanguageNone))) |