aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Interpreter/ScriptInterpreter.cpp
diff options
context:
space:
mode:
authorMed Ismail Bennani <medismail.bennani@gmail.com>2021-03-23 16:22:18 +0000
committerMed Ismail Bennani <medismail.bennani@gmail.com>2021-03-23 18:24:47 +0100
commit1f6a57c1a0fad922e04a2b1f414b092d4b0cd8b0 (patch)
tree7be83ae7b17d0c59563fc1db05e8ff879cbbce21 /lldb/source/Interpreter/ScriptInterpreter.cpp
parent3e0ad115439622b9c3e6ca9fd64c7fb07a679f1a (diff)
downloadllvm-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.cpp22
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)))