aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp19
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h7
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp9
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp97
4 files changed, 71 insertions, 61 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
index 699412e..a8e1d09 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
@@ -48,7 +48,8 @@ Status ScriptedPythonInterface::ExtractValueFromPythonObject<Status>(
if (lldb::SBError *sb_error = reinterpret_cast<lldb::SBError *>(
python::LLDBSWIGPython_CastPyObjectToSBError(p.get())))
return m_interpreter.GetStatusFromSBError(*sb_error);
- error.SetErrorString("Couldn't cast lldb::SBError to lldb::Status.");
+ error =
+ Status::FromErrorString("Couldn't cast lldb::SBError to lldb::Status.");
return {};
}
@@ -59,7 +60,8 @@ Event *ScriptedPythonInterface::ExtractValueFromPythonObject<Event *>(
if (lldb::SBEvent *sb_event = reinterpret_cast<lldb::SBEvent *>(
python::LLDBSWIGPython_CastPyObjectToSBEvent(p.get())))
return m_interpreter.GetOpaqueTypeFromSBEvent(*sb_event);
- error.SetErrorString("Couldn't cast lldb::SBEvent to lldb_private::Event.");
+ error = Status::FromErrorString(
+ "Couldn't cast lldb::SBEvent to lldb_private::Event.");
return nullptr;
}
@@ -71,7 +73,8 @@ ScriptedPythonInterface::ExtractValueFromPythonObject<lldb::StreamSP>(
if (lldb::SBStream *sb_stream = reinterpret_cast<lldb::SBStream *>(
python::LLDBSWIGPython_CastPyObjectToSBStream(p.get())))
return m_interpreter.GetOpaqueTypeFromSBStream(*sb_stream);
- error.SetErrorString("Couldn't cast lldb::SBStream to lldb_private::Stream.");
+ error = Status::FromErrorString(
+ "Couldn't cast lldb::SBStream to lldb_private::Stream.");
return nullptr;
}
@@ -84,7 +87,7 @@ ScriptedPythonInterface::ExtractValueFromPythonObject<lldb::DataExtractorSP>(
python::LLDBSWIGPython_CastPyObjectToSBData(p.get()));
if (!sb_data) {
- error.SetErrorString(
+ error = Status::FromErrorStringWithFormat(
"Couldn't cast lldb::SBData to lldb::DataExtractorSP.");
return nullptr;
}
@@ -100,7 +103,7 @@ ScriptedPythonInterface::ExtractValueFromPythonObject<lldb::BreakpointSP>(
python::LLDBSWIGPython_CastPyObjectToSBBreakpoint(p.get()));
if (!sb_breakpoint) {
- error.SetErrorString(
+ error = Status::FromErrorStringWithFormat(
"Couldn't cast lldb::SBBreakpoint to lldb::BreakpointSP.");
return nullptr;
}
@@ -115,7 +118,7 @@ lldb::ProcessAttachInfoSP ScriptedPythonInterface::ExtractValueFromPythonObject<
python::LLDBSWIGPython_CastPyObjectToSBAttachInfo(p.get()));
if (!sb_attach_info) {
- error.SetErrorString(
+ error = Status::FromErrorStringWithFormat(
"Couldn't cast lldb::SBAttachInfo to lldb::ProcessAttachInfoSP.");
return nullptr;
}
@@ -130,7 +133,7 @@ lldb::ProcessLaunchInfoSP ScriptedPythonInterface::ExtractValueFromPythonObject<
python::LLDBSWIGPython_CastPyObjectToSBLaunchInfo(p.get()));
if (!sb_launch_info) {
- error.SetErrorString(
+ error = Status::FromErrorStringWithFormat(
"Couldn't cast lldb::SBLaunchInfo to lldb::ProcessLaunchInfoSP.");
return nullptr;
}
@@ -148,7 +151,7 @@ ScriptedPythonInterface::ExtractValueFromPythonObject<
python::LLDBSWIGPython_CastPyObjectToSBMemoryRegionInfo(p.get()));
if (!sb_mem_reg_info) {
- error.SetErrorString(
+ error = Status::FromErrorStringWithFormat(
"Couldn't cast lldb::SBMemoryRegionInfo to lldb::MemoryRegionInfoSP.");
return {};
}
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h b/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
index e1a3156..cbb6cd4 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
@@ -269,7 +269,7 @@ protected:
transformed_args);
if (llvm::Error e = expected_return_object.takeError()) {
- error.SetErrorString(llvm::toString(std::move(e)).c_str());
+ error = Status(std::move(e));
return ErrorWithMessage<T>(caller_signature,
"Python method could not be called.", error);
}
@@ -368,9 +368,8 @@ protected:
if (boolean_arg.IsValid())
original_arg = boolean_arg.GetValue();
else
- error.SetErrorString(
- llvm::formatv("{}: Invalid boolean argument.", LLVM_PRETTY_FUNCTION)
- .str());
+ error = Status::FromErrorStringWithFormatv(
+ "{}: Invalid boolean argument.", LLVM_PRETTY_FUNCTION);
}
template <std::size_t... I, typename... Args>
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
index 7c7035e..ce14b53 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
@@ -1247,7 +1247,8 @@ public:
if (!bytes_written)
return Status(bytes_written.takeError());
if (bytes_written.get() < 0)
- return Status(".write() method returned a negative number!");
+ return Status::FromErrorString(
+ ".write() method returned a negative number!");
static_assert(sizeof(long long) >= sizeof(size_t), "overflow");
num_bytes = bytes_written.get();
return Status();
@@ -1301,7 +1302,8 @@ public:
if (!bytes_written)
return Status(bytes_written.takeError());
if (bytes_written.get() < 0)
- return Status(".write() method returned a negative number!");
+ return Status::FromErrorString(
+ ".write() method returned a negative number!");
static_assert(sizeof(long long) >= sizeof(size_t), "overflow");
num_bytes = bytes_written.get();
return Status();
@@ -1313,7 +1315,8 @@ public:
size_t orig_num_bytes = num_bytes;
num_bytes = 0;
if (orig_num_bytes < 6) {
- return Status("can't read less than 6 bytes from a utf8 text stream");
+ return Status::FromErrorString(
+ "can't read less than 6 bytes from a utf8 text stream");
}
auto pystring = As<PythonString>(
m_py_obj.CallMethod("read", (unsigned long long)num_chars));
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index 2a94f11..76f2640 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -1175,7 +1175,7 @@ Status ScriptInterpreterPythonImpl::SetBreakpointCommandCallbackFunction(
llvm::Expected<unsigned> maybe_args =
GetMaxPositionalArgumentsForCallable(function_name);
if (!maybe_args) {
- error.SetErrorStringWithFormat(
+ error = Status::FromErrorStringWithFormat(
"could not get num args: %s",
llvm::toString(maybe_args.takeError()).c_str());
return error;
@@ -1188,16 +1188,16 @@ Status ScriptInterpreterPythonImpl::SetBreakpointCommandCallbackFunction(
function_signature += "(frame, bp_loc, extra_args, internal_dict)";
} else if (max_args >= 3) {
if (extra_args_sp) {
- error.SetErrorString("cannot pass extra_args to a three argument callback"
- );
+ error = Status::FromErrorStringWithFormat(
+ "cannot pass extra_args to a three argument callback");
return error;
}
uses_extra_args = false;
function_signature += "(frame, bp_loc, internal_dict)";
} else {
- error.SetErrorStringWithFormat("expected 3 or 4 argument "
- "function, %s can only take %zu",
- function_name, max_args);
+ error = Status::FromErrorStringWithFormat("expected 3 or 4 argument "
+ "function, %s can only take %zu",
+ function_name, max_args);
return error;
}
@@ -1297,12 +1297,12 @@ Status ScriptInterpreterPythonImpl::GenerateFunction(const char *signature,
Status error;
int num_lines = input.GetSize();
if (num_lines == 0) {
- error.SetErrorString("No input data.");
+ error = Status::FromErrorString("No input data.");
return error;
}
if (!signature || *signature == 0) {
- error.SetErrorString("No output function name.");
+ error = Status::FromErrorString("No output function name.");
return error;
}
@@ -1329,8 +1329,9 @@ Status ScriptInterpreterPythonImpl::GenerateFunction(const char *signature,
sstr.Printf(" __return_val = %s", input.GetStringAtIndex(0));
auto_generated_function.AppendString(sstr.GetData());
} else {
- return Status("ScriptInterpreterPythonImpl::GenerateFunction(is_callback="
- "true) = ERROR: python function is multiline.");
+ return Status::FromErrorString(
+ "ScriptInterpreterPythonImpl::GenerateFunction(is_callback="
+ "true) = ERROR: python function is multiline.");
}
} else {
auto_generated_function.AppendString(
@@ -1658,12 +1659,12 @@ StructuredData::GenericSP ScriptInterpreterPythonImpl::CreateScriptedStopHook(
const StructuredDataImpl &args_data, Status &error) {
if (!target_sp) {
- error.SetErrorString("No target for scripted stop-hook.");
+ error = Status::FromErrorString("No target for scripted stop-hook.");
return StructuredData::GenericSP();
}
if (class_name == nullptr || class_name[0] == '\0') {
- error.SetErrorString("No class name for scripted stop-hook.");
+ error = Status::FromErrorString("No class name for scripted stop-hook.");
return StructuredData::GenericSP();
}
@@ -1671,7 +1672,8 @@ StructuredData::GenericSP ScriptInterpreterPythonImpl::CreateScriptedStopHook(
GetPythonInterpreter(m_debugger);
if (!python_interpreter) {
- error.SetErrorString("No script interpreter for scripted stop-hook.");
+ error = Status::FromErrorString(
+ "No script interpreter for scripted stop-hook.");
return StructuredData::GenericSP();
}
@@ -1707,7 +1709,7 @@ StructuredData::ObjectSP
ScriptInterpreterPythonImpl::LoadPluginModule(const FileSpec &file_spec,
lldb_private::Status &error) {
if (!FileSystem::Instance().Exists(file_spec)) {
- error.SetErrorString("no such file");
+ error = Status::FromErrorString("no such file");
return StructuredData::ObjectSP();
}
@@ -1825,7 +1827,7 @@ Status ScriptInterpreterPythonImpl::GenerateBreakpointCommandCallbackData(
StreamString sstr;
Status error;
if (user_input.GetSize() == 0) {
- error.SetErrorString("No input data.");
+ error = Status::FromErrorString("No input data.");
return error;
}
@@ -2239,11 +2241,11 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
Status &error) {
bool ret_val;
if (!process) {
- error.SetErrorString("no process");
+ error = Status::FromErrorString("no process");
return false;
}
if (!impl_function || !impl_function[0]) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2254,7 +2256,7 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
impl_function, m_dictionary_name.c_str(), process->shared_from_this(),
output);
if (!ret_val)
- error.SetErrorString("python script evaluation failed");
+ error = Status::FromErrorString("python script evaluation failed");
}
return ret_val;
}
@@ -2263,11 +2265,11 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
const char *impl_function, Thread *thread, std::string &output,
Status &error) {
if (!thread) {
- error.SetErrorString("no thread");
+ error = Status::FromErrorString("no thread");
return false;
}
if (!impl_function || !impl_function[0]) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2280,7 +2282,7 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
output = std::move(*result);
return true;
}
- error.SetErrorString("python script evaluation failed");
+ error = Status::FromErrorString("python script evaluation failed");
return false;
}
@@ -2289,11 +2291,11 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
Status &error) {
bool ret_val;
if (!target) {
- error.SetErrorString("no thread");
+ error = Status::FromErrorString("no thread");
return false;
}
if (!impl_function || !impl_function[0]) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2304,7 +2306,7 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
ret_val = SWIGBridge::LLDBSWIGPythonRunScriptKeywordTarget(
impl_function, m_dictionary_name.c_str(), target_sp, output);
if (!ret_val)
- error.SetErrorString("python script evaluation failed");
+ error = Status::FromErrorString("python script evaluation failed");
}
return ret_val;
}
@@ -2313,11 +2315,11 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
const char *impl_function, StackFrame *frame, std::string &output,
Status &error) {
if (!frame) {
- error.SetErrorString("no frame");
+ error = Status::FromErrorString("no frame");
return false;
}
if (!impl_function || !impl_function[0]) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2330,7 +2332,7 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
output = std::move(*result);
return true;
}
- error.SetErrorString("python script evaluation failed");
+ error = Status::FromErrorString("python script evaluation failed");
return false;
}
@@ -2339,11 +2341,11 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
Status &error) {
bool ret_val;
if (!value) {
- error.SetErrorString("no value");
+ error = Status::FromErrorString("no value");
return false;
}
if (!impl_function || !impl_function[0]) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2353,7 +2355,7 @@ bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword(
ret_val = SWIGBridge::LLDBSWIGPythonRunScriptKeywordValue(
impl_function, m_dictionary_name.c_str(), value->GetSP(), output);
if (!ret_val)
- error.SetErrorString("python script evaluation failed");
+ error = Status::FromErrorString("python script evaluation failed");
}
return ret_val;
}
@@ -2382,7 +2384,7 @@ bool ScriptInterpreterPythonImpl::LoadScriptingModule(
.SetSetLLDBGlobals(false);
if (!pathname || !pathname[0]) {
- error.SetErrorString("empty path");
+ error = Status::FromErrorString("empty path");
return false;
}
@@ -2449,14 +2451,16 @@ bool ScriptInterpreterPythonImpl::LoadScriptingModule(
// if not a valid file of any sort, check if it might be a filename still
// dot can't be used but / and \ can, and if either is found, reject
if (strchr(pathname, '\\') || strchr(pathname, '/')) {
- error.SetErrorStringWithFormatv("invalid pathname '{0}'", pathname);
+ error = Status::FromErrorStringWithFormatv("invalid pathname '{0}'",
+ pathname);
return false;
}
// Not a filename, probably a package of some sort, let it go through.
possible_package = true;
} else if (is_directory(st) || is_regular_file(st)) {
if (module_file.GetDirectory().IsEmpty()) {
- error.SetErrorStringWithFormatv("invalid directory name '{0}'", pathname);
+ error = Status::FromErrorStringWithFormatv(
+ "invalid directory name '{0}'", pathname);
return false;
}
if (llvm::Error e =
@@ -2466,7 +2470,8 @@ bool ScriptInterpreterPythonImpl::LoadScriptingModule(
}
module_name = module_file.GetFilename().GetCString();
} else {
- error.SetErrorString("no known way to import this module specification");
+ error = Status::FromErrorString(
+ "no known way to import this module specification");
return false;
}
}
@@ -2481,13 +2486,13 @@ bool ScriptInterpreterPythonImpl::LoadScriptingModule(
}
if (!possible_package && module_name.find('.') != llvm::StringRef::npos) {
- error.SetErrorStringWithFormat(
+ error = Status::FromErrorStringWithFormat(
"Python does not allow dots in module names: %s", module_name.c_str());
return false;
}
if (module_name.find('-') != llvm::StringRef::npos) {
- error.SetErrorStringWithFormat(
+ error = Status::FromErrorStringWithFormat(
"Python discourages dashes in module names: %s", module_name.c_str());
return false;
}
@@ -2530,7 +2535,7 @@ bool ScriptInterpreterPythonImpl::LoadScriptingModule(
if (!SWIGBridge::LLDBSwigPythonCallModuleInit(
module_name.c_str(), m_dictionary_name.c_str(),
m_debugger.shared_from_this())) {
- error.SetErrorString("calling __lldb_init_module failed");
+ error = Status::FromErrorString("calling __lldb_init_module failed");
return false;
}
@@ -2598,7 +2603,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedCommand(
lldb_private::CommandReturnObject &cmd_retobj, Status &error,
const lldb_private::ExecutionContext &exe_ctx) {
if (!impl_function) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2606,7 +2611,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedCommand(
lldb::ExecutionContextRefSP exe_ctx_ref_sp(new ExecutionContextRef(exe_ctx));
if (!debugger_sp.get()) {
- error.SetErrorString("invalid Debugger pointer");
+ error = Status::FromErrorString("invalid Debugger pointer");
return false;
}
@@ -2629,7 +2634,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedCommand(
}
if (!ret_val)
- error.SetErrorString("unable to execute script function");
+ error = Status::FromErrorString("unable to execute script function");
else if (cmd_retobj.GetStatus() == eReturnStatusFailed)
return false;
@@ -2643,7 +2648,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedCommand(
lldb_private::CommandReturnObject &cmd_retobj, Status &error,
const lldb_private::ExecutionContext &exe_ctx) {
if (!impl_obj_sp || !impl_obj_sp->IsValid()) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2651,7 +2656,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedCommand(
lldb::ExecutionContextRefSP exe_ctx_ref_sp(new ExecutionContextRef(exe_ctx));
if (!debugger_sp.get()) {
- error.SetErrorString("invalid Debugger pointer");
+ error = Status::FromErrorString("invalid Debugger pointer");
return false;
}
@@ -2674,7 +2679,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedCommand(
}
if (!ret_val)
- error.SetErrorString("unable to execute script function");
+ error = Status::FromErrorString("unable to execute script function");
else if (cmd_retobj.GetStatus() == eReturnStatusFailed)
return false;
@@ -2688,7 +2693,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedParsedCommand(
lldb_private::CommandReturnObject &cmd_retobj, Status &error,
const lldb_private::ExecutionContext &exe_ctx) {
if (!impl_obj_sp || !impl_obj_sp->IsValid()) {
- error.SetErrorString("no function to execute");
+ error = Status::FromErrorString("no function to execute");
return false;
}
@@ -2696,7 +2701,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedParsedCommand(
lldb::ExecutionContextRefSP exe_ctx_ref_sp(new ExecutionContextRef(exe_ctx));
if (!debugger_sp.get()) {
- error.SetErrorString("invalid Debugger pointer");
+ error = Status::FromErrorString("invalid Debugger pointer");
return false;
}
@@ -2725,7 +2730,7 @@ bool ScriptInterpreterPythonImpl::RunScriptBasedParsedCommand(
}
if (!ret_val)
- error.SetErrorString("unable to execute script function");
+ error = Status::FromErrorString("unable to execute script function");
else if (cmd_retobj.GetStatus() == eReturnStatusFailed)
return false;