mirror of
https://github.com/intel/llvm.git
synced 2026-01-29 12:24:23 +08:00
<rdar://problem/14266411>
The semi-unofficial way of returning a status from a Python command was to return a string (e.g. return "no such variable was found") that LLDB would pick as a clue of an error having happened
This checkin changes that:
- SBCommandReturnObject now exports a SetError() call, which can take an SBError or a plain C-string
- script commands now drop any return value and expect the SBCommandReturnObject ("return object") to be filled in appropriately - if you do nothing, a success will be assumed
If your commands were relying on returning a value and having LLDB pick that up as an error, please change your commands to SetError() through the return object or expect changes in behavior
llvm-svn: 184893
This commit is contained in:
@@ -115,7 +115,6 @@ LLDBSwigPythonCallCommand (const char *python_function_name,
|
||||
const char *session_dictionary_name,
|
||||
lldb::DebuggerSP& debugger,
|
||||
const char* args,
|
||||
std::string& err_msg,
|
||||
lldb_private::CommandReturnObject& cmd_retobj);
|
||||
|
||||
extern "C" bool
|
||||
@@ -2970,7 +2969,7 @@ ScriptInterpreterPython::RunScriptBasedCommand(const char* impl_function,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ret_val;
|
||||
bool ret_val = false;
|
||||
|
||||
std::string err_msg;
|
||||
|
||||
@@ -2995,12 +2994,11 @@ ScriptInterpreterPython::RunScriptBasedCommand(const char* impl_function,
|
||||
m_dictionary_name.c_str(),
|
||||
debugger_sp,
|
||||
args,
|
||||
err_msg,
|
||||
cmd_retobj);
|
||||
}
|
||||
|
||||
if (!ret_val)
|
||||
error.SetErrorString(err_msg.c_str());
|
||||
error.SetErrorString("unable to execute script function");
|
||||
else
|
||||
error.Clear();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user