aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Interpreter/ScriptInterpreter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Interpreter/ScriptInterpreter.cpp')
-rw-r--r--lldb/source/Interpreter/ScriptInterpreter.cpp43
1 files changed, 27 insertions, 16 deletions
diff --git a/lldb/source/Interpreter/ScriptInterpreter.cpp b/lldb/source/Interpreter/ScriptInterpreter.cpp
index d04baec76e60..00c460612ac1 100644
--- a/lldb/source/Interpreter/ScriptInterpreter.cpp
+++ b/lldb/source/Interpreter/ScriptInterpreter.cpp
@@ -32,32 +32,36 @@ void ScriptInterpreter::CollectDataForBreakpointCommandCallback(
CommandReturnObject &result) {
result.SetStatus(eReturnStatusFailed);
result.AppendError(
- "ScriptInterpreter::GetScriptCommands(StringList &) is not implemented.");
+ "This script interpreter does not support breakpoint callbacks.");
}
void ScriptInterpreter::CollectDataForWatchpointCommandCallback(
WatchpointOptions *bp_options, CommandReturnObject &result) {
result.SetStatus(eReturnStatusFailed);
result.AppendError(
- "ScriptInterpreter::GetScriptCommands(StringList &) is not implemented.");
+ "This script interpreter does not support watchpoint callbacks.");
}
-std::string ScriptInterpreter::LanguageToString(lldb::ScriptLanguage language) {
- std::string return_value;
+bool ScriptInterpreter::LoadScriptingModule(
+ const char *filename, bool init_session, lldb_private::Status &error,
+ StructuredData::ObjectSP *module_sp) {
+ error.SetErrorString(
+ "This script interpreter does not support importing modules.");
+ return false;
+}
+std::string ScriptInterpreter::LanguageToString(lldb::ScriptLanguage language) {
switch (language) {
case eScriptLanguageNone:
- return_value = "None";
- break;
+ return "None";
case eScriptLanguagePython:
- return_value = "Python";
- break;
+ return "Python";
+ case eScriptLanguageLua:
+ return "Lua";
case eScriptLanguageUnknown:
- return_value = "Unknown";
- break;
+ return "Unknown";
}
-
- return return_value;
+ llvm_unreachable("Unhandled ScriptInterpreter!");
}
lldb::ScriptLanguage
@@ -66,6 +70,8 @@ ScriptInterpreter::StringToLanguage(const llvm::StringRef &language) {
return eScriptLanguageNone;
if (language.equals_lower(LanguageToString(eScriptLanguagePython)))
return eScriptLanguagePython;
+ if (language.equals_lower(LanguageToString(eScriptLanguageLua)))
+ return eScriptLanguageLua;
return eScriptLanguageUnknown;
}
@@ -81,12 +87,17 @@ Status ScriptInterpreter::SetBreakpointCommandCallback(
return return_error;
}
-void ScriptInterpreter::SetBreakpointCommandCallbackFunction(
- std::vector<BreakpointOptions *> &bp_options_vec,
- const char *function_name) {
+Status ScriptInterpreter::SetBreakpointCommandCallbackFunction(
+ std::vector<BreakpointOptions *> &bp_options_vec, const char *function_name,
+ StructuredData::ObjectSP extra_args_sp) {
+ Status error;
for (BreakpointOptions *bp_options : bp_options_vec) {
- SetBreakpointCommandCallbackFunction(bp_options, function_name);
+ error = SetBreakpointCommandCallbackFunction(bp_options, function_name,
+ extra_args_sp);
+ if (!error.Success())
+ return error;
}
+ return error;
}
std::unique_ptr<ScriptInterpreterLocker>