This is part 2, covering the commands source.
Some uses remain where it's tricky to see what the
logic is or they are not used with AppendError.
Reviewed By: teemperor
Differential Revision: https://reviews.llvm.org/D104448
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("'' is not a valid search word.\n");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("'apropos' must be called with exactly one argument.\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
if (num_files == 0) {
if (!GetDefaultFile(target, file, result)) {
result.AppendError("No file supplied and no default file available.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else if (num_files > 1) {
result.AppendError("Only one file at a time is allowed for file and "
"line breakpoints.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else
file = m_options.m_filenames.GetFileSpecAtIndex(0);
} else {
result.AppendError("Only one shared library can be specified for "
"address breakpoints.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
break;
result.AppendWarning(
"Function name regex does not accept glob patterns.");
}
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!GetDefaultFile(target, file, result)) {
result.AppendError(
"No files provided and could not find default file.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
m_options.m_filenames.Append(file);
result.AppendErrorWithFormat(
"Source text regular expression could not be compiled: \"%s\"",
llvm::toString(std::move(err)).c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
bp_sp = target.CreateSourceRegexBreakpoint(
"Error setting extra exception arguments: %s",
precond_error.AsCString());
target.RemoveBreakpointByID(bp_sp->GetID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} break;
result.AppendErrorWithFormat(
"Error setting extra exception arguments: %s", error.AsCString());
target.RemoveBreakpointByID(bp_sp->GetID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} break;
result.AppendErrorWithFormat("Invalid breakpoint name: %s",
name.c_str());
target.RemoveBreakpointByID(bp_sp->GetID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else if (!bp_sp) {
result.AppendError("Breakpoint creation failed: No breakpoint created.");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
if (cur_frame == nullptr) {
result.AppendError(
"No selected frame to use to find the default file.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!cur_frame->HasDebugInformation()) {
result.AppendError("Cannot use the selected frame to find the default "
"file, it has no debug info.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
const SymbolContext &sc =
} else {
result.AppendError("Can't find the file for the selected frame to "
"use as the default file.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (num_breakpoints == 0) {
result.AppendError("No breakpoints exist to be enabled.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_breakpoints == 0) {
result.AppendError("No breakpoints exist to be disabled.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("Invalid breakpoint ID.");
- result.SetStatus(eReturnStatusFailed);
}
}
// Early return if there's no breakpoint at all.
if (num_breakpoints == 0) {
result.AppendError("Breakpoint clear: No breakpoint cleared.");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("Breakpoint clear: No breakpoint cleared.");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
if (num_breakpoints == 0) {
result.AppendError("No breakpoints exist to be deleted.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (valid_bp_ids.GetSize() == 0) {
result.AppendError("No disabled breakpoints.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
const size_t argc = command.GetArgumentCount();
if (argc == 0) {
result.AppendError("No names provided.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!BreakpointID::StringIsBreakpointName(entry.ref(), error)) {
result.AppendErrorWithFormat("Invalid breakpoint name: %s - %s",
entry.c_str(), error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (!bp_sp) {
result.AppendErrorWithFormatv("Could not find specified breakpoint {0}",
bp_id);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
size_t num_breakpoints = breakpoints.GetSize();
if (num_breakpoints == 0) {
result.SetError("No breakpoints, cannot add names.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (result.Succeeded()) {
if (valid_bp_ids.GetSize() == 0) {
result.SetError("No breakpoints specified, cannot add names.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
size_t num_valid_ids = valid_bp_ids.GetSize();
size_t num_breakpoints = breakpoints.GetSize();
if (num_breakpoints == 0) {
result.SetError("No breakpoints, cannot delete names.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (result.Succeeded()) {
if (valid_bp_ids.GetSize() == 0) {
result.SetError("No breakpoints specified, cannot delete names.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
ConstString bp_name(m_name_options.m_name.GetCurrentValue());
if (!error.Success()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!error.Success()) {
result.AppendErrorWithFormat("error serializing breakpoints: %s.",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
} else {
result.AppendError(
"No breakpoint specified and no last created breakpoint.");
- result.SetStatus(eReturnStatusFailed);
}
return;
}
result.AppendErrorWithFormat(
"'%s' is not a currently valid breakpoint/location id.\n",
id_str.GetData());
- result.SetStatus(eReturnStatusFailed);
}
} else {
i = valid_ids->GetSize() + 1;
result.AppendErrorWithFormat(
"'%d' is not a currently valid breakpoint ID.\n",
cur_bp_id.GetBreakpointID());
- result.SetStatus(eReturnStatusFailed);
}
}
}
if (num_breakpoints == 0) {
result.AppendError("No breakpoints exist to have commands added");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_breakpoints == 0) {
result.AppendError("No breakpoints exist to have commands deleted");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.empty()) {
result.AppendError(
"No breakpoint specified from which to delete the commands");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("Invalid breakpoint ID: %u.%u.\n",
cur_bp_id.GetBreakpointID(),
cur_bp_id.GetLocationID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
if (num_breakpoints == 0) {
result.AppendError("No breakpoints exist for which to list commands");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.empty()) {
result.AppendError(
"No breakpoint specified for which to list the commands");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("Invalid breakpoint ID: %u.%u.\n",
cur_bp_id.GetBreakpointID(),
cur_bp_id.GetLocationID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
} else {
result.AppendErrorWithFormat("Invalid breakpoint ID: %u.\n",
cur_bp_id.GetBreakpointID());
- result.SetStatus(eReturnStatusFailed);
}
}
}
result.AppendErrorWithFormat(
"'%s' takes exactly one executable filename argument.\n",
GetCommandName().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (args.GetArgumentCount() < 2) {
result.AppendError("'command alias' requires at least two arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendWarning("if trying to pass options to 'command alias' add "
"a -- at the end of the options");
}
- result.SetStatus(eReturnStatusFailed);
return false;
}
raw_command_string = raw_command_string.substr(pos);
} else {
result.AppendError("Error parsing command string. No alias created.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"'%s' is a permanent debugger command and cannot be redefined.\n",
args[0].c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
"'%s' does not begin with a valid command."
" No alias created.",
original_raw_command_string.str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!cmd_obj->WantsRawCommandString()) {
// Note that args was initialized with the original command, and has not
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("Unable to create requested alias.\n");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("Unable to create requested alias.\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
if (argc < 2) {
result.AppendError("'command alias' requires at least two arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"'%s' is a permanent debugger command and cannot be redefined.\n",
alias_command.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!command_obj_sp) {
result.AppendErrorWithFormat("'%s' is not an existing command.\n",
actual_command.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
CommandObject *cmd_obj = command_obj_sp.get();
"'%s' is not a valid sub-command of '%s'. "
"Unable to create alias.\n",
args[0].c_str(), actual_command.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("Unable to create requested alias.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (args.empty()) {
result.AppendError("must call 'unalias' with a valid alias");
- result.SetStatus(eReturnStatusFailed);
return false;
}
"'%s' is not a known command.\nTry 'help' to see a "
"current list of commands.\n",
args[0].c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
"'%s' is a permanent debugger command and cannot be removed.\n",
args[0].c_str());
}
- result.SetStatus(eReturnStatusFailed);
return false;
}
else
result.AppendErrorWithFormat("'%s' is not an existing alias.\n",
args[0].c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("must call '%s' with one or more valid user "
"defined regular expression command names",
GetCommandName().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
&error_msg_stream, command_name, llvm::StringRef(), llvm::StringRef(),
generate_upropos, generate_type_lookup);
result.AppendError(error_msg_stream.GetString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"'%s' is a permanent debugger command and cannot be removed.\n",
args[0].c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc == 0) {
result.AppendError("usage: 'command regex <command-name> "
"[s/<regex1>/<subst1>/ s/<regex2>/<subst2>/ ...]'\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
m_function_name.c_str(), raw_command_line, m_synchro,
result, error, m_exe_ctx)) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
} else {
// Don't change the status if the command already set it...
if (result.GetStatus() == eReturnStatusInvalid) {
!scripter->RunScriptBasedCommand(m_cmd_obj_sp, raw_command_line,
m_synchro, result, error, m_exe_ctx)) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
} else {
// Don't change the status if the command already set it...
if (result.GetStatus() == eReturnStatusInvalid) {
bool DoExecute(Args &command, CommandReturnObject &result) override {
if (command.empty()) {
result.AppendError("command script import needs one or more arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!source_dir) {
result.AppendError("command script import -c can only be specified "
"from a command file");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
} else {
result.AppendErrorWithFormat("module importing failed: %s",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
if (GetDebugger().GetScriptLanguage() != lldb::eScriptLanguagePython) {
result.AppendError("only scripting language supported for scripted "
"commands is currently Python");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() != 1) {
result.AppendError("'command script add' requires one argument");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("cannot add command");
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
ScriptInterpreter *interpreter = GetDebugger().GetScriptInterpreter();
if (!interpreter) {
result.AppendError("cannot find ScriptInterpreter");
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_options.m_class_name.c_str());
if (!cmd_obj_sp) {
result.AppendError("cannot create helper object");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("cannot add command");
- result.SetStatus(eReturnStatusFailed);
}
}
bool DoExecute(Args &command, CommandReturnObject &result) override {
if (command.GetArgumentCount() != 0) {
result.AppendError("'command script list' doesn't take any arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
bool DoExecute(Args &command, CommandReturnObject &result) override {
if (command.GetArgumentCount() != 0) {
result.AppendError("'command script clear' doesn't take any arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() != 1) {
result.AppendError("'command script delete' requires one argument");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (cmd_name.empty() || !m_interpreter.HasUserCommands() ||
!m_interpreter.UserCommandExists(cmd_name)) {
result.AppendErrorWithFormat("command %s not found", command[0].c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!m_options.arch.IsValid()) {
result.AppendError(
"use the --arch option or set the target architecture to disassemble");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Unable to find Disassembler plug-in for the '%s' architecture.\n",
m_options.arch.GetArchitectureName());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (flavor_string != nullptr && !disassembler->FlavorValidForArchSpec(
m_options.arch, flavor_string))
GetCommandInterpreter().GetDebugger().GetTerminalWidth();
GetOptions()->GenerateOptionUsage(result.GetErrorStream(), this,
terminal_width);
- result.SetStatus(eReturnStatusFailed);
return false;
}
GetRangesForSelectedMode(result);
if (!ranges) {
result.AppendError(toString(ranges.takeError()));
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
"Failed to disassemble memory at 0x%8.8" PRIx64 ".\n",
cur_range.GetBaseAddress().GetLoadAddress(target));
}
- result.SetStatus(eReturnStatusFailed);
}
if (print_sc_header)
result.GetOutputStream() << "\n";
if (m_command_options.top_level && !m_command_options.allow_jit) {
result.AppendErrorWithFormat(
"Can't disable JIT compilation for top-level expressions.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"expression cannot be used with --element-count %s\n",
error.AsCString(""));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (m_options.reg.hasValue() || m_options.offset.hasValue()) {
result.AppendError(
"`frame diagnose --address` is incompatible with other arguments.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
valobj_sp = frame_sp->GuessValueForAddress(m_options.address.getValue());
StopInfoSP stop_info_sp = thread->GetStopInfo();
if (!stop_info_sp) {
result.AppendError("No arguments provided, and no stop info.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!valobj_sp) {
result.AppendError("No diagnosis available.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// If you are already at the bottom of the stack, then just warn
// and don't reset the frame.
result.AppendError("Already at the bottom of the stack.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else
frame_idx = 0;
// If we are already at the top of the stack, just warn and don't
// reset the frame.
result.AppendError("Already at the top of the stack.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else
frame_idx = num_frames - 1;
if (command[0].ref().getAsInteger(0, frame_idx)) {
result.AppendErrorWithFormat("invalid frame index argument '%s'.",
command[0].c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else if (command.GetArgumentCount() == 0) {
} else {
result.AppendErrorWithFormat("Frame index (%u) out of range.\n",
frame_idx);
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
if (m_options.m_class_name.empty()) {
result.AppendErrorWithFormat(
"%s needs a Python class name (-l argument).\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (m_options.m_module.empty()) {
result.AppendErrorWithFormat("%s needs a module name (-s argument).\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"%s needs at least one symbol name (-n argument).\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"%s needs only one symbol regular expression (-n argument).\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
"About to delete all frame recognizers, do you want to do that?",
true)) {
result.AppendMessage("Operation cancelled...");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() != 1) {
result.AppendErrorWithFormat("'%s' takes zero or one arguments.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!llvm::to_integer(command.GetArgumentAtIndex(0), recognizer_id)) {
result.AppendErrorWithFormat("'%s' is not a valid recognizer id.\n",
command.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return false;
}
.RemoveRecognizerWithID(recognizer_id)) {
result.AppendErrorWithFormat("'%s' is not a valid recognizer id.\n",
command.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishResult);
if (!llvm::to_integer(frame_index_str, frame_index)) {
result.AppendErrorWithFormat("'%s' is not a valid frame index.",
frame_index_str);
- result.SetStatus(eReturnStatusFailed);
return false;
}
Process *process = m_exe_ctx.GetProcessPtr();
if (process == nullptr) {
result.AppendError("no process");
- result.SetStatus(eReturnStatusFailed);
return false;
}
Thread *thread = m_exe_ctx.GetThreadPtr();
if (thread == nullptr) {
result.AppendError("no thread");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() != 1) {
result.AppendErrorWithFormat(
"'%s' takes exactly one frame index argument.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
StackFrameSP frame_sp = thread->GetStackFrameAtIndex(frame_index);
if (!frame_sp) {
result.AppendErrorWithFormat("no frame with index %u", frame_index);
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("the gui command requires an interactive terminal.");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("the gui command takes no arguments.");
- result.SetStatus(eReturnStatusFailed);
}
return true;
#else
}
s.Printf("\n");
result.AppendError(s.GetString());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!sub_cmd_obj) {
StreamString error_msg_stream;
&error_msg_stream, cmd_string.c_str(),
m_interpreter.GetCommandPrefix(), sub_command.c_str());
result.AppendError(error_msg_stream.GetString());
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
GenerateAdditionalHelpAvenuesMessage(
m_interpreter.GetCommandPrefix(),
"");
result.AppendError(error_msg_stream.GetString());
- result.SetStatus(eReturnStatusFailed);
}
}
}
result.AppendErrorWithFormat(
"%s takes a log channel and one or more log types.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"%s takes a log channel and one or more log types.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_cmd_name.c_str());
result.AppendWarning("Expressions should be quoted if they contain "
"spaces or other special characters.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat("invalid type string: '%s'\n",
view_as_type_cstr);
- result.SetStatus(eReturnStatusFailed);
return false;
}
break;
"Mutiple types found matching raw type '%s', please disambiguate "
"by specifying the language with -x",
lookup_type_name.GetCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
"the raw type '%s' for full type '%s'\n",
lookup_type_name.GetCString(),
view_as_type_cstr);
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
TypeSP type_sp(type_list.GetTypeAtIndex(0));
compiler_type = pointer_type;
else {
result.AppendError("unable make a pointer type\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
--pointer_count;
result.AppendErrorWithFormat(
"unable to get the byte size of the type '%s'\n",
view_as_type_cstr);
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_format_options.GetByteSizeValue() = *size;
// Look for invalid combinations of settings
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (addr == LLDB_INVALID_ADDRESS) {
result.AppendError("invalid start address expression.");
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (end_addr == LLDB_INVALID_ADDRESS) {
result.AppendError("invalid end address expression.");
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (end_addr <= addr) {
result.AppendErrorWithFormat(
"end address (0x%" PRIx64
") must be greater than the start address (0x%" PRIx64 ").\n",
end_addr, addr);
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (m_format_options.GetCountValue().OptionWasSet()) {
result.AppendErrorWithFormat(
"specify either the end address (0x%" PRIx64
") or the count (--count %" PRIu64 "), not both.\n",
end_addr, (uint64_t)item_count);
- result.SetStatus(eReturnStatusFailed);
return false;
}
"can't allocate 0x%" PRIx32
" bytes for the memory read buffer, specify a smaller size to read",
(uint32_t)total_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"failed to read memory from 0x%" PRIx64 ".\n", addr);
}
- result.SetStatus(eReturnStatusFailed);
return false;
}
"can't allocate 0x%" PRIx64
" bytes for the memory read buffer, specify a smaller size to read",
(uint64_t)((item_byte_size + 1) * item_count));
- result.SetStatus(eReturnStatusFailed);
return false;
}
uint8_t *data_ptr = data_sp->GetBytes();
if (error.Fail()) {
result.AppendErrorWithFormat(
"failed to read memory from 0x%" PRIx64 ".\n", addr);
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("Failed to write %" PRIu64
" bytes to '%s'.\n",
(uint64_t)bytes_read, path.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
path.c_str(), append ? "append" : "write");
result.AppendError(llvm::toString(outfile.takeError()));
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat(
"failed to create a value object for: (%s) %s\n",
view_as_type_cstr, name_strm.GetData());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormat(
"reading memory as characters of size %" PRIu64 " is not supported",
(uint64_t)item_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormat(
"%s takes a destination address when writing file contents.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else if (argc < 2) {
result.AppendErrorWithFormat(
"%s takes a destination address and at least one value.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (addr == LLDB_INVALID_ADDRESS) {
result.AppendError("invalid address expression\n");
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("Memory write to 0x%" PRIx64
" failed: %s.\n",
addr, error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
result.AppendErrorWithFormat("Unable to read contents of file.\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
} else if (item_byte_size == 0) {
case eFormatInstruction:
case eFormatVoid:
result.AppendError("unsupported format for writing memory");
- result.SetStatus(eReturnStatusFailed);
return false;
case eFormatDefault:
if (!success) {
result.AppendErrorWithFormat(
"'%s' is not a valid hex string value.\n", entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!llvm::isUIntN(item_byte_size * 8, uval64)) {
result.AppendErrorWithFormat("Value 0x%" PRIx64
" is too large to fit in a %" PRIu64
" byte unsigned integer value.\n",
uval64, (uint64_t)item_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
buffer.PutMaxHex64(uval64, item_byte_size);
if (!success) {
result.AppendErrorWithFormat(
"'%s' is not a valid boolean string value.\n", entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
buffer.PutMaxHex64(uval64, item_byte_size);
if (entry.ref().getAsInteger(2, uval64)) {
result.AppendErrorWithFormat(
"'%s' is not a valid binary string value.\n", entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!llvm::isUIntN(item_byte_size * 8, uval64)) {
result.AppendErrorWithFormat("Value 0x%" PRIx64
" is too large to fit in a %" PRIu64
" byte unsigned integer value.\n",
uval64, (uint64_t)item_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
buffer.PutMaxHex64(uval64, item_byte_size);
result.AppendErrorWithFormat("Memory write to 0x%" PRIx64
" failed: %s.\n",
addr, error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
break;
if (entry.ref().getAsInteger(0, sval64)) {
result.AppendErrorWithFormat(
"'%s' is not a valid signed decimal value.\n", entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!llvm::isIntN(item_byte_size * 8, sval64)) {
result.AppendErrorWithFormat(
"Value %" PRIi64 " is too large or small to fit in a %" PRIu64
" byte signed integer value.\n",
sval64, (uint64_t)item_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
buffer.PutMaxHex64(sval64, item_byte_size);
result.AppendErrorWithFormat(
"'%s' is not a valid unsigned decimal string value.\n",
entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!llvm::isUIntN(item_byte_size * 8, uval64)) {
result.AppendErrorWithFormat("Value %" PRIu64
" is too large to fit in a %" PRIu64
" byte unsigned integer value.\n",
uval64, (uint64_t)item_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
buffer.PutMaxHex64(uval64, item_byte_size);
if (entry.ref().getAsInteger(8, uval64)) {
result.AppendErrorWithFormat(
"'%s' is not a valid octal string value.\n", entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!llvm::isUIntN(item_byte_size * 8, uval64)) {
result.AppendErrorWithFormat("Value %" PRIo64
" is too large to fit in a %" PRIu64
" byte unsigned integer value.\n",
uval64, (uint64_t)item_byte_size);
- result.SetStatus(eReturnStatusFailed);
return false;
}
buffer.PutMaxHex64(uval64, item_byte_size);
result.AppendErrorWithFormat("Memory write to 0x%" PRIx64
" failed: %s.\n",
addr, error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (argc == 0 || argc > 1) {
result.AppendErrorWithFormat("%s takes an address expression",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (addr == LLDB_INVALID_ADDRESS) {
result.AppendError("invalid address expression");
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!memory_history) {
result.AppendError("no available memory history provider");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!process_sp) {
m_prev_end_addr = LLDB_INVALID_ADDRESS;
result.AppendError("invalid process");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc > 1 || (argc == 0 && load_addr == LLDB_INVALID_ADDRESS)) {
result.AppendErrorWithFormat("'%s' takes one argument:\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (error.Fail() || load_addr == LLDB_INVALID_ADDRESS) {
result.AppendErrorWithFormat("invalid address argument \"%s\": %s\n",
command[0].c_str(), error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
return true;
}
- result.SetStatus(eReturnStatusFailed);
result.AppendErrorWithFormat("%s\n", error.AsCString());
return false;
}
if (m_subcommand_dict.empty()) {
result.AppendErrorWithFormat("'%s' does not have any subcommands.\n",
GetCommandName().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
error_msg.append("\n");
result.AppendRawError(error_msg.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("invalid platform name");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError(
"platform create takes a platform name as an argument\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (idx == 0) {
result.AppendError("no platforms are available\n");
- result.SetStatus(eReturnStatusFailed);
} else
result.SetStatus(eReturnStatusSuccessFinishResult);
return result.Succeeded();
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("no platform is currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
platform_sp->ConnectToWaitingProcesses(GetDebugger(), error);
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat("%s\n", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform is currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendErrorWithFormat("%s", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
// Not connected...
result.AppendErrorWithFormat(
"not connected to '%s'",
platform_sp->GetPluginName().GetCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
// Bad args
result.AppendError(
"\"platform disconnect\" doesn't take any arguments");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform is currently selected");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
m_option_working_dir.GetOptionValue().GetCurrentValue());
} else {
result.AppendError("no platform is currently selected");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (!llvm::to_integer(cmd_line, fd)) {
result.AppendErrorWithFormatv("'{0}' is not a valid file descriptor.\n",
cmd_line);
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
Status error;
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (!llvm::to_integer(cmd_line, fd)) {
result.AppendErrorWithFormatv("'{0}' is not a valid file descriptor.\n",
cmd_line);
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
std::string buffer(m_options.m_count, 0);
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (!llvm::to_integer(cmd_line, fd)) {
result.AppendErrorWithFormatv("'{0}' is not a valid file descriptor.",
cmd_line);
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
uint32_t retcode =
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
} else {
result.AppendMessageWithFormat("get-file failed: %s\n",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.AppendMessageWithFormat(
"Error getting file size of %s (remote)\n",
remote_file_path.c_str());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform currently selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.AppendError("process launch failed");
else
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
} else {
result.AppendError("'platform process launch' uses the current target "
"file and arguments, or the executable and its "
"arguments can be specified in this command");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
} else {
result.AppendErrorWithFormat(
"no process found with pid = %" PRIu64 "\n", pid);
- result.SetStatus(eReturnStatusFailed);
}
} else {
ProcessInstanceInfoList proc_infos;
result.AppendErrorWithFormat(
"no processes were found on the \"%s\" platform\n",
platform_sp->GetPluginName().GetCString());
- result.SetStatus(eReturnStatusFailed);
} else {
result.AppendMessageWithFormat(
"%u matching process%s found on \"%s\"", matches,
}
} else {
result.AppendError("invalid args: process list takes only options\n");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform is selected\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (entry.ref().getAsInteger(0, pid)) {
result.AppendErrorWithFormat("invalid process ID argument '%s'",
entry.ref().str().c_str());
- result.SetStatus(eReturnStatusFailed);
break;
} else {
ProcessInstanceInfo proc_info;
result.AppendErrorWithFormat(
"not connected to '%s'",
platform_sp->GetPluginName().GetCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
// No args
result.AppendError("one or more process id(s) must be specified");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("no platform is currently selected");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
m_options.attach_info, GetDebugger(), nullptr, err);
if (err.Fail()) {
result.AppendError(err.AsCString());
- result.SetStatus(eReturnStatusFailed);
} else if (!remote_process_sp) {
result.AppendError("could not attach: unknown reason");
- result.SetStatus(eReturnStatusFailed);
} else
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("no platform is currently selected");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
} else {
result.SetStatus(eReturnStatusSuccessFinishResult);
}
bool DoExecute(Args &args, CommandReturnObject &result) override {
if (args.GetArgumentCount() != 2) {
result.AppendError("platform target-install takes two arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// TODO: move the bulk of this code over to the platform itself
FileSpec dst(args.GetArgumentAtIndex(1));
if (!FileSystem::Instance().Exists(src)) {
result.AppendError("source location does not exist or is not accessible");
- result.SetStatus(eReturnStatusFailed);
return false;
}
PlatformSP platform_sp(
GetDebugger().GetPlatformList().GetSelectedPlatform());
if (!platform_sp) {
result.AppendError("no platform currently selected");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendErrorWithFormat("install failed: %s", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (argc != 1) {
result.AppendError("'plugin load' requires one argument");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishResult);
else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
result.AppendErrorWithFormat(
"Failed to detach from process: %s\n",
detach_error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
Status destroy_error(process->Destroy(false));
} else {
result.AppendErrorWithFormat("Failed to kill process: %s\n",
destroy_error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
}
if (exe_module_sp == nullptr) {
result.AppendError("no file in target, create a debug target using the "
"'target create' command");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendError(
"no error returned from Target::Launch, and target has no process");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (command.GetArgumentCount()) {
result.AppendErrorWithFormat("Invalid arguments for '%s'.\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendError(
"no error returned from Target::Attach, and target has no process");
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat("attach failed: %s\n", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
if (!result.Succeeded())
result.AppendErrorWithFormat(
"The '%s' command does not take any arguments.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat("Failed to resume process: %s.\n",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat(
"Process cannot be continued from its current state (%s).\n",
StateAsCString(state));
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendErrorWithFormat("Detach failed: %s\n", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
return result.Succeeded();
result.AppendErrorWithFormat(
"'%s' takes exactly one argument:\nUsage: %s\n", m_cmd_name.c_str(),
m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
"Process %" PRIu64
" is currently being debugged, kill the process before connecting.\n",
process->GetID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
error);
if (error.Fail() || process_sp == nullptr) {
result.AppendError(error.AsCString("Error connecting to the process"));
- result.SetStatus(eReturnStatusFailed);
return false;
}
return true;
result.AppendErrorWithFormat("failed to load '%s': %s",
image_path.str().c_str(),
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
return result.Succeeded();
if (entry.ref().getAsInteger(0, image_token)) {
result.AppendErrorWithFormat("invalid image index argument '%s'",
entry.ref().str().c_str());
- result.SetStatus(eReturnStatusFailed);
break;
} else {
Status error(process->GetTarget().GetPlatform()->UnloadImage(
} else {
result.AppendErrorWithFormat("failed to unload image: %s",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
break;
}
}
if (signo == LLDB_INVALID_SIGNAL_NUMBER) {
result.AppendErrorWithFormat("Invalid signal argument '%s'.\n",
command.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
} else {
Status error(process->Signal(signo));
if (error.Success()) {
} else {
result.AppendErrorWithFormat("Failed to send signal %i: %s\n", signo,
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
result.AppendErrorWithFormat(
"'%s' takes exactly one signal number argument:\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
Process *process = m_exe_ctx.GetProcessPtr();
if (process == nullptr) {
result.AppendError("no process to halt");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat("Failed to halt process: %s\n",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat("'%s' takes no arguments:\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
Process *process = m_exe_ctx.GetProcessPtr();
if (process == nullptr) {
result.AppendError("no process to kill");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat("Failed to kill process: %s\n",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat("'%s' takes no arguments:\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
} else {
result.AppendErrorWithFormat(
"Failed to save core file for process: %s\n", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat("'%s' takes one arguments:\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("invalid process");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount()) {
result.AppendError("'process status' takes no arguments");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
PlatformSP platform_sp = process->GetTarget().GetPlatform();
if (!platform_sp) {
result.AppendError("Couldn'retrieve the target's platform");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
if (!expected_crash_info) {
result.AppendError(llvm::toString(expected_crash_info.takeError()));
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
if (!process_sp) {
result.AppendError("No current process; cannot handle signals until you "
"have a valid process.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
!VerifyCommandOptionValue(m_options.stop, stop_action)) {
result.AppendError("Invalid argument for command option --stop; must be "
"true or false.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
!VerifyCommandOptionValue(m_options.notify, notify_action)) {
result.AppendError("Invalid argument for command option --notify; must "
"be true or false.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
!VerifyCommandOptionValue(m_options.pass, pass_action)) {
result.AppendError("Invalid argument for command option --pass; must be "
"true or false.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() > 1) {
result.AppendError("Too many arguments for 'quit'. Only an optional exit "
"code is allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
std::string arg_str = arg.str();
s.Printf("Couldn't parse '%s' as integer for exit code.", arg_str.data());
result.AppendError(s.GetString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!m_interpreter.SetQuitExitCode(exit_code)) {
result.AppendError("The current driver doesn't allow custom exit codes"
" for the quit command.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
llvm::sys::StrError());
else
result.AppendError("unknown error while reading registers.\n");
- result.SetStatus(eReturnStatusFailed);
break;
}
} else {
result.AppendErrorWithFormat(
"invalid register set index: %" PRIu64 "\n", (uint64_t)set_idx);
- result.SetStatus(eReturnStatusFailed);
break;
}
}
if (m_command_options.dump_all_sets) {
result.AppendError("the --all option can't be used when registers "
"names are supplied as arguments\n");
- result.SetStatus(eReturnStatusFailed);
} else if (m_command_options.set_indexes.GetSize() > 0) {
result.AppendError("the --set <set> option can't be used when "
"registers names are supplied as arguments\n");
- result.SetStatus(eReturnStatusFailed);
} else {
for (auto &entry : command) {
// in most LLDB commands we accept $rbx as the name for register RBX
if (command.GetArgumentCount() != 2) {
result.AppendError(
"register write takes exactly 2 arguments: <reg-name> <value>");
- result.SetStatus(eReturnStatusFailed);
} else {
auto reg_name = command[0].ref();
auto value_str = command[1].ref();
"Failed to write register '%s' with value '%s'",
reg_name.str().c_str(), value_str.str().c_str());
}
- result.SetStatus(eReturnStatusFailed);
} else {
result.AppendErrorWithFormat("Register not found for '%s'.\n",
reg_name.str().c_str());
- result.SetStatus(eReturnStatusFailed);
}
}
return result.Succeeded();
return result.Succeeded();
} else {
result.AppendErrorWithFormat("Unable to get the reproducer generator");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (language == lldb::eScriptLanguageNone) {
result.AppendError(
"the script-lang setting is set to none - scripting not available");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (script_interpreter == nullptr) {
result.AppendError("no script interpreter");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((argc < min_argc) && (!m_options.m_global)) {
result.AppendError("'settings set' takes more arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError(
"'settings set' command requires a valid variable name");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationClear, var_name, llvm::StringRef()));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
return result.Succeeded();
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
result.SetStatus(eReturnStatusSuccessFinishResult);
result.GetOutputStream().EOL();
} else {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
if (!out_file.GetFile().IsValid()) {
result.AppendErrorWithFormat("%s: unable to write to file", path.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
&clean_ctx, out_file, arg.ref(), OptionValue::eDumpGroupExport));
if (!error.Success()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
result.AppendErrorWithFormat("invalid property path '%s'",
property_path);
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
"or an array followed by one or more indexes, or a "
"dictionary followed by one or more key names to "
"remove");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError(
"'settings remove' command requires a valid variable name");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationRemove, var_name, var_value));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError("'settings replace' command requires a valid variable "
"name; No value supplied");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationReplace, var_name, var_value));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
result.SetStatus(eReturnStatusSuccessFinishNoResult);
if (argc < 3) {
result.AppendError("'settings insert-before' takes more arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError("'settings insert-before' command requires a valid "
"variable name; No value supplied");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationInsertBefore, var_name, var_value));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc < 3) {
result.AppendError("'settings insert-after' takes more arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError("'settings insert-after' command requires a valid "
"variable name; No value supplied");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationInsertAfter, var_name, var_value));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc < 2) {
result.AppendError("'settings append' takes more arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError("'settings append' command requires a valid variable "
"name; No value supplied");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationAppend, var_name, var_value));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (m_options.m_clear_all) {
if (argc != 0) {
result.AppendError("'settings clear --all' doesn't take any arguments");
- result.SetStatus(eReturnStatusFailed);
return false;
}
GetDebugger().GetValueProperties()->Clear();
if (argc != 1) {
result.AppendError("'settings clear' takes exactly one argument");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError("'settings clear' command requires a valid variable "
"name; No value supplied");
- result.SetStatus(eReturnStatusFailed);
return false;
}
&m_exe_ctx, eVarSetOperationClear, var_name, llvm::StringRef()));
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc != 0) {
result.AppendErrorWithFormat("'%s' takes no arguments, only flags.\n",
GetCommandName().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (target == nullptr) {
result.AppendError("invalid target, create a debug target using the "
"'target create' command.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
}
if (!m_module_list.GetSize()) {
result.AppendError("No modules match the input.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else if (target->GetImages().GetSize() == 0) {
result.AppendError("The target has no associated executable images.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("Could not find line information for "
"start of function: \"%s\".\n",
source_info.function.GetCString());
- result.SetStatus(eReturnStatusFailed);
return 0;
}
sc.function->GetEndLineSourceInfo(end_file, end_line);
if (argc != 0) {
result.AppendErrorWithFormat("'%s' takes no arguments, only flags.\n",
GetCommandName().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_matches == 0) {
result.AppendErrorWithFormat("Could not find function named: \"%s\".\n",
m_options.symbol_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
"no modules have source information for file address 0x%" PRIx64
".\n",
m_options.address);
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
"is no line table information "
"available for this address.\n",
error_strm.GetData());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormat(
"no modules contain load address 0x%" PRIx64 ".\n",
m_options.address);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (num_matches == 0) {
result.AppendErrorWithFormat("Could not find source file \"%s\".\n",
m_options.file_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Multiple source files found matching: \"%s.\"\n",
m_options.file_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
} else {
result.AppendErrorWithFormat("No comp unit found for: \"%s.\"\n",
m_options.file_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (target.GetCollectingStats()) {
result.AppendError("statistics already enabled");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!target.GetCollectingStats()) {
result.AppendError("need to enable statistics before disabling them");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormatv("Cannot open '{0}': {1}.",
core_file.GetPath(),
llvm::toString(file.takeError()));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormatv("Cannot open '{0}': {1}.",
symfile.GetPath(),
llvm::toString(file.takeError()));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
// make up a local file
result.AppendError("remote --> local transfer without local "
"path is not implemented yet");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
} else {
result.AppendError("no platform found for target");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (error.Fail()) {
result.AppendError(
error.AsCString("can't find plug-in for core file"));
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
result.AppendMessageWithFormatv(
result.AppendErrorWithFormatv(
"Unable to find process plug-in for core file '{0}'\n",
core_file.GetPath());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendMessageWithFormat(
result.AppendErrorWithFormat("'%s' takes exactly one executable path "
"argument, or use the --core option.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("the 'target list' command takes no arguments\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
"index %u is out of range since there are no active targets\n",
target_idx);
}
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat("invalid index string value '%s'\n",
target_idx_arg);
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError(
"'target select' takes a single argument: a target index\n");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
// Bail out if don't have any targets.
if (num_targets == 0) {
result.AppendError("no targets to delete");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (entry.ref().getAsInteger(0, target_idx)) {
result.AppendErrorWithFormat("invalid target index '%s'\n",
entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (target_idx < num_targets) {
"target index %u is out of range, the only valid index is 0\n",
target_idx);
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
target_sp = target_list.GetSelectedTarget();
if (!target_sp) {
result.AppendErrorWithFormat("no target is currently selected\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
delete_target_list.push_back(target_sp);
if (!regex.IsValid()) {
result.GetErrorStream().Printf(
"error: invalid regular expression: '%s'\n", arg.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
use_var_name = true;
} else
result.AppendError("'target variable' takes one or more global "
"variable names as arguments\n");
- result.SetStatus(eReturnStatusFailed);
}
} else {
SymbolContextList sc_list;
const size_t argc = command.GetArgumentCount();
if (argc & 1) {
result.AppendError("add requires an even number of arguments\n");
- result.SetStatus(eReturnStatusFailed);
} else {
for (size_t i = 0; i < argc; i += 2) {
const char *from = command.GetArgumentAtIndex(i);
result.AppendError("<path-prefix> can't be empty\n");
else
result.AppendError("<new-path-prefix> can't be empty\n");
- result.SetStatus(eReturnStatusFailed);
}
}
}
result.AppendErrorWithFormat(
"<index> parameter is not an integer: '%s'.\n",
command.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
result.AppendError("<path-prefix> can't be empty\n");
else
result.AppendError("<new-path-prefix> can't be empty\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
} else {
result.AppendError("insert requires at least three arguments\n");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
return result.Succeeded();
Target *target = &GetSelectedTarget();
if (command.GetArgumentCount() != 0) {
result.AppendError("list takes no arguments\n");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
Target *target = &GetSelectedTarget();
if (command.GetArgumentCount() != 1) {
result.AppendError("query requires one argument\n");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
}
target->GetImages());
if (num_dumped == 0) {
result.AppendError("the target has no associated executable images");
- result.SetStatus(eReturnStatusFailed);
}
} else {
// Find the modules that match the basename or full path.
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendError("no matching executable images found");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
}
} else {
result.AppendError("the target has no associated executable images");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.SetStatus(eReturnStatusSuccessFinishResult);
else {
result.AppendError("no matching executable images found");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
const size_t num_modules = target->GetImages().GetSize();
if (num_modules == 0) {
result.AppendError("the target has no associated executable images");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishResult);
else {
result.AppendError("no matching executable images found");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
const size_t num_modules = module_list.GetSize();
if (num_modules == 0) {
result.AppendError("the target has no associated executable images");
- result.SetStatus(eReturnStatusFailed);
return false;
}
const size_t num_modules = target_modules.GetSize();
if (num_modules == 0) {
result.AppendError("the target has no associated executable images");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.GetOutputStream().Format(
result.SetStatus(eReturnStatusSuccessFinishResult);
else {
result.AppendError("no matching executable images found");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (command.GetArgumentCount() == 0) {
result.AppendError("file option must be specified.");
- result.SetStatus(eReturnStatusFailed);
return result.Succeeded();
} else {
// Dump specified images (by basename or fullpath)
result.SetStatus(eReturnStatusSuccessFinishResult);
else {
result.AppendError("no source filenames matched any command arguments");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
"or symbol file with UUID %s",
strm.GetData());
}
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat(
"Unable to locate the executable or symbol file with UUID %s",
strm.GetData());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendError(
"one or more executable image paths must be specified");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
std::string resolved_path = file_spec.GetPath();
- result.SetStatus(eReturnStatusFailed);
if (resolved_path != entry.ref()) {
result.AppendErrorWithFormat(
"invalid module path '%s' with resolved path '%s'\n",
search_using_module_spec = false;
result.AppendErrorWithFormat(
"more than 1 module matched by name '%s'\n", arg_cstr);
- result.SetStatus(eReturnStatusFailed);
} else {
search_using_module_spec = false;
result.AppendErrorWithFormat("no object file for module '%s'\n",
arg_cstr);
- result.SetStatus(eReturnStatusFailed);
}
}
} else {
result.AppendError("one or more section name + load "
"address pair must be specified");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendError("The \"--slide <offset>\" option can't "
"be used in conjunction with setting "
"section load addresses.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
"thread specific sections are not yet "
"supported (section '%s')\n",
sect_name);
- result.SetStatus(eReturnStatusFailed);
break;
} else {
if (target->GetSectionLoadList()
"matches the section "
"name '%s'\n",
sect_name);
- result.SetStatus(eReturnStatusFailed);
break;
}
} else {
result.AppendErrorWithFormat(
"invalid load address string '%s'\n", load_addr_cstr);
- result.SetStatus(eReturnStatusFailed);
break;
}
} else {
else
result.AppendError("one or more section name + load "
"address pair must be specified.\n");
- result.SetStatus(eReturnStatusFailed);
break;
}
}
result.AppendErrorWithFormat("failed to set PC value to "
"0x%" PRIx64 "\n",
file_entry_addr);
- result.SetStatus(eReturnStatusFailed);
}
}
}
module->GetFileSpec().GetPath(path, sizeof(path));
result.AppendErrorWithFormat("no sections in object file '%s'\n",
path);
- result.SetStatus(eReturnStatusFailed);
}
} else {
module->GetFileSpec().GetPath(path, sizeof(path));
result.AppendErrorWithFormat("no object file for module '%s'\n",
path);
- result.SetStatus(eReturnStatusFailed);
}
} else {
FileSpec *module_spec_file = module_spec.GetFileSpecPtr();
result.AppendErrorWithFormat("invalid module '%s'.\n", path);
} else
result.AppendError("no module spec");
- result.SetStatus(eReturnStatusFailed);
}
} else {
std::string uuid_str;
path[0] ? " file=" : "", path, !uuid_str.empty() ? " uuid=" : "",
uuid_str.c_str());
}
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError("either the \"--file <module>\" or the \"--uuid "
"<uuid>\" option must be specified.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
return result.Succeeded();
if (target == nullptr && !use_global_module_list) {
result.AppendError("invalid target, create a debug target using the "
"'target create' command");
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
if (target) {
result.AppendErrorWithFormat(
"Couldn't find module matching address: 0x%" PRIx64 ".",
m_options.m_module_addr);
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat(
"Couldn't find module containing address: 0x%" PRIx64 ".",
m_options.m_module_addr);
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendError(
"Can only look up modules by address with a valid target.");
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
if (argc == 1) {
result.AppendErrorWithFormat("no modules found that match '%s'",
arg.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendError(
"the target has no associated executable images");
}
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (process == nullptr) {
result.AppendError(
"You must have a process running to use this command.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
ThreadList threads(process->GetThreadList());
if (threads.GetSize() == 0) {
result.AppendError("The process must be paused to use this command.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
ThreadSP thread(threads.GetThreadAtIndex(0));
if (!thread) {
result.AppendError("The process must be paused to use this command.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendError(
"address-expression or function name option must be specified.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_matches == 0) {
result.AppendErrorWithFormat("no unwind data found that matches '%s'.",
m_options.m_str.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
std::lock_guard<std::recursive_mutex> guard(target_modules.GetMutex());
if (target_modules.GetSize() == 0) {
result.AppendError("the target has no associated executable images");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!symbol_fspec) {
result.AppendError(
"one or more executable image paths must be specified");
- result.SetStatus(eReturnStatusFailed);
return false;
}
"use the --uuid option to resolve the "
"ambiguity.\n",
symfile_path);
- result.SetStatus(eReturnStatusFailed);
return false;
}
!llvm::sys::fs::is_regular_file(symbol_fspec.GetPath())
? "\n please specify the full path to the symbol file"
: "");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// FIXME: Set the stop hook ID counter back.
result.AppendErrorWithFormat("Couldn't add stop hook: %s",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
target.UndoCreateStopHook(new_hook_sp->GetID());
return false;
}
if (!llvm::to_integer(command.GetArgumentAtIndex(i), user_id)) {
result.AppendErrorWithFormat("invalid stop hook id: \"%s\".\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!target.RemoveStopHookByID(user_id)) {
result.AppendErrorWithFormat("unknown stop hook id: \"%s\".\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (!llvm::to_integer(command.GetArgumentAtIndex(i), user_id)) {
result.AppendErrorWithFormat("invalid stop hook id: \"%s\".\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
success = target.SetStopHookActiveStateByID(user_id, m_enable);
if (!success) {
result.AppendErrorWithFormat("unknown stop hook id: \"%s\".\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormat(
"thread disappeared while computing backtraces: 0x%" PRIx64 "\n",
tid);
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"error displaying backtrace for thread: \"0x%4.4x\"\n",
thread->GetIndexID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (m_options.m_extended_backtrace) {
if (thread == nullptr) {
result.AppendError("no selected thread in process");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
if (!llvm::to_integer(thread_idx_cstr, step_thread_idx)) {
result.AppendErrorWithFormat("invalid thread index '%s'.\n",
thread_idx_cstr);
- result.SetStatus(eReturnStatusFailed);
return false;
}
thread =
result.AppendErrorWithFormat(
"Thread index %u is out of range (valid values are 0 - %u).\n",
step_thread_idx, num_threads);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (m_step_type == eStepTypeScripted) {
if (m_class_options.GetName().empty()) {
result.AppendErrorWithFormat("empty class name for scripted step.");
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (!GetDebugger().GetScriptInterpreter()->CheckObjectExists(
m_class_options.GetName().c_str())) {
result.AppendErrorWithFormat(
"class for scripted step: \"%s\" does not exist.",
m_class_options.GetName().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
m_step_type != eStepTypeInto) {
result.AppendErrorWithFormat(
"end line option is only valid for step into");
- result.SetStatus(eReturnStatusFailed);
return false;
}
error)) {
result.AppendErrorWithFormat("invalid end-line option: %s.",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else if (m_options.m_end_line_is_block_end) {
Block *block = frame->GetSymbolContext(eSymbolContextBlock).block;
if (!block) {
result.AppendErrorWithFormat("Could not find the current block.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!block_range.GetBaseAddress().IsValid()) {
result.AppendErrorWithFormat(
"Could not find the current block address.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
lldb::addr_t pc_offset_in_block =
new_plan_status);
} else {
result.AppendError("step type is not supported");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!error.Success()) {
result.AppendMessage(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
} else {
result.SetError(new_plan_status);
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
Process *process = m_exe_ctx.GetProcessPtr();
if (process == nullptr) {
result.AppendError("no process exists. Cannot continue");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (entry.ref().getAsInteger(0, thread_idx)) {
result.AppendErrorWithFormat(
"invalid thread index argument: \"%s\".\n", entry.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
Thread *thread =
} else {
result.AppendErrorWithFormat("invalid thread index %u.\n",
thread_idx);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (resume_threads.empty()) {
result.AppendError("no valid thread indexes were specified");
- result.SetStatus(eReturnStatusFailed);
return false;
} else {
if (resume_threads.size() == 1)
Thread *current_thread = GetDefaultThread();
if (current_thread == nullptr) {
result.AppendError("the process doesn't have a current thread");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// Set the actions that the threads should each take when resuming
} else {
result.AppendErrorWithFormat("Failed to resume process: %s\n",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
} else {
result.AppendErrorWithFormat(
"Process cannot be continued from its current state (%s).\n",
StateAsCString(state));
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
Process *process = m_exe_ctx.GetProcessPtr();
if (process == nullptr) {
result.AppendError("need a valid process to step");
- result.SetStatus(eReturnStatusFailed);
} else {
Thread *thread = nullptr;
std::vector<uint32_t> line_numbers;
if (!llvm::to_integer(command.GetArgumentAtIndex(i), line_number)) {
result.AppendErrorWithFormat("invalid line number: '%s'.\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
} else
line_numbers.push_back(line_number);
} else if (m_options.m_until_addrs.empty()) {
result.AppendErrorWithFormat("No line number or address provided:\n%s",
GetSyntax().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Thread index %u is out of range (valid values are 0 - %u).\n",
m_options.m_thread_idx, num_threads);
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Frame index %u is out of range for thread %u.\n",
m_options.m_frame_idx, m_options.m_thread_idx);
- result.SetStatus(eReturnStatusFailed);
return false;
}
"frame %u of thread index %u.\n",
m_options.m_frame_idx,
m_options.m_thread_idx);
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Until target outside of the current function.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
new_plan_sp->SetOkayToDiscard(false);
} else {
result.SetError(new_plan_status);
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat(
"Frame index %u of thread %u has no debug information.\n",
m_options.m_frame_idx, m_options.m_thread_idx);
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat("Failed to resume process: %s.\n",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
}
return result.Succeeded();
Process *process = m_exe_ctx.GetProcessPtr();
if (process == nullptr) {
result.AppendError("no process");
- result.SetStatus(eReturnStatusFailed);
return false;
} else if (command.GetArgumentCount() != 1) {
result.AppendErrorWithFormat(
"'%s' takes exactly one thread index argument:\nUsage: %s\n",
m_cmd_name.c_str(), m_cmd_syntax.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!llvm::to_integer(command.GetArgumentAtIndex(0), index_id)) {
result.AppendErrorWithFormat("Invalid thread index '%s'",
command.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (new_thread == nullptr) {
result.AppendErrorWithFormat("invalid thread #%s.\n",
command.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!thread_sp) {
result.AppendErrorWithFormat("thread no longer exists: 0x%" PRIx64 "\n",
tid);
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_options.m_json_stopinfo)) {
result.AppendErrorWithFormat("error displaying info for thread: \"%d\"\n",
thread->GetIndexID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
return true;
if (!thread_sp) {
result.AppendErrorWithFormat("thread no longer exists: 0x%" PRIx64 "\n",
tid);
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!error.Success()) {
result.AppendErrorWithFormat("Unwinding expression failed - %s.",
error.AsCString());
- result.SetStatus(eReturnStatusFailed);
} else {
bool success =
thread->SetSelectedFrameByIndexNoisily(0, result.GetOutputStream());
} else {
result.AppendErrorWithFormat(
"Could not select 0th frame after unwinding expression.");
- result.SetStatus(eReturnStatusFailed);
}
}
return result.Succeeded();
if (frame_sp->IsInlined()) {
result.AppendError("Don't know how to return from inlined frames.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
else
result.AppendErrorWithFormat(
"Unknown error evaluating result expression.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormat(
"Error returning from frame %d of thread %d: %s.", frame_idx,
thread_sp->GetIndexID(), error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
lldb::addr_t callAddr = dest.GetCallableLoadAddress(target);
if (callAddr == LLDB_INVALID_ADDRESS) {
result.AppendErrorWithFormat("Invalid destination address.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!reg_ctx->SetPC(callAddr)) {
result.AppendErrorWithFormat("Error changing PC value for thread %d.",
thread->GetIndexID());
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
if (!file) {
result.AppendErrorWithFormat(
"No source file available for the current location.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!success) {
result.SetError("Error dumping plans:");
result.AppendError(tmp_strm.GetString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
// Otherwise, add our data to the output:
result.AppendErrorWithFormat("Too many arguments, expected one - the "
"thread plan index - but got %zu.",
args.GetArgumentCount());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Invalid thread index: \"%s\" - should be unsigned int.",
args.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (thread_plan_idx == 0) {
result.AppendErrorWithFormat(
"You wouldn't really want me to discard the base thread plan.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat(
"Could not find User thread plan with index %s.",
args.GetArgumentAtIndex(0));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (!llvm::to_integer(args.GetArgumentAtIndex(i), tid)) {
result.AppendErrorWithFormat("invalid thread specification: \"%s\"\n",
args.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!process->PruneThreadPlansForTID(tid)) {
result.AppendErrorWithFormat("Could not find unreported tid: \"%s\"\n",
args.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (!llvm::to_integer(command.GetArgumentAtIndex(i), thread_idx)) {
result.AppendErrorWithFormat("invalid thread specification: \"%s\"\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!thread) {
result.AppendErrorWithFormat("no thread with index: \"%s\"\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
Thread *thread = process->GetThreadList().FindThreadByID(tid).get();
if (thread == nullptr) {
result.AppendErrorWithFormatv("Failed to process thread #{0}.\n", tid);
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!llvm::to_integer(command.GetArgumentAtIndex(i), thread_idx)) {
result.AppendErrorWithFormat("invalid thread specification: \"%s\"\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!thread) {
result.AppendErrorWithFormat("no thread with index: \"%s\"\n",
command.GetArgumentAtIndex(i));
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendError(
"a single path to a JSON file containing a trace session"
"is required");
- result.SetStatus(eReturnStatusFailed);
return false;
}
auto end_with_failure = [&result](llvm::Error err) -> bool {
result.AppendErrorWithFormat("%s\n",
llvm::toString(std::move(err)).c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
};
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendErrorWithFormat("%s\n", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.SetStatus(eReturnStatusSuccessFinishResult);
} else {
result.AppendErrorWithFormat("%s\n", error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
}
result.AppendError("must either provide a children list, a Python class "
"name, or use -P and type a Python class "
"line-by-line");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (argc < 1) {
result.AppendErrorWithFormat("%s takes one or more args.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_command_options.m_custom_type_name.empty()) {
result.AppendErrorWithFormat("%s needs a valid format.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
for (auto &arg_entry : command.entries()) {
if (arg_entry.ref().empty()) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!typeRX.IsValid()) {
result.AppendError(
"regex format error (maybe this is not really a regex?)");
- result.SetStatus(eReturnStatusFailed);
return false;
}
category_sp->GetRegexTypeSummariesContainer()->Delete(typeCS);
if (argc != 1) {
result.AppendErrorWithFormat("%s takes 1 arg.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!typeCS) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
return result.Succeeded();
} else {
result.AppendErrorWithFormat("no custom formatter for %s.\n", typeA);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
result.AppendErrorWithFormat(
"syntax error in category regular expression '%s'",
m_options.m_category_regex.GetCurrentValueAsRef().str().c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (!formatter_regex->IsValid()) {
result.AppendErrorWithFormat("syntax error in regular expression '%s'",
arg);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (argc < 1 && !m_options.m_name) {
result.AppendErrorWithFormat("%s takes one or more args.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
const char *funct_name = m_options.m_python_function.c_str();
if (!funct_name || !funct_name[0]) {
result.AppendError("function name empty.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!interpreter) {
result.AppendError("script interpreter missing - unable to generate "
"function wrapper.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
StringList funct_sl;
std::string funct_name_str;
if (!interpreter->GenerateTypeScriptFunction(funct_sl, funct_name_str)) {
result.AppendError("unable to generate function wrapper.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (funct_name_str.empty()) {
result.AppendError(
"script interpreter failed to generate a valid function name.\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
for (auto &entry : command.entries()) {
if (entry.ref().empty()) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_options.m_category, &error);
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (error.Fail()) {
result.AppendError(error.AsCString());
result.AppendError("added to types, but not given a name");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (argc < 1 && !m_options.m_name) {
result.AppendErrorWithFormat("%s takes one or more args.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!m_options.m_flags.GetShowMembersOneLiner() &&
m_options.m_format_string.empty()) {
result.AppendError("empty summary strings not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// ${var%S} is an endless recursion, prevent it
if (strcmp(format_cstr, "${var%S}") == 0) {
result.AppendError("recursive summary not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
new StringSummaryFormat(m_options.m_flags, format_cstr));
if (!string_format) {
result.AppendError("summary creation failed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (string_format->m_error.Fail()) {
result.AppendErrorWithFormat("syntax error: %s",
string_format->m_error.AsCString("<unknown>"));
- result.SetStatus(eReturnStatusFailed);
return false;
}
lldb::TypeSummaryImplSP entry(string_format.release());
for (auto &arg_entry : command.entries()) {
if (arg_entry.ref().empty()) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
ConstString typeCS(arg_entry.ref());
if (error.Fail()) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (error.Fail()) {
result.AppendError(error.AsCString());
result.AppendError("added to types, but not given a name");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
return Execute_ScriptSummary(command, result);
#else
result.AppendError("python is disabled");
- result.SetStatus(eReturnStatusFailed);
return false;
#endif
}
if (argc < 1) {
result.AppendErrorWithFormat("%s takes 1 or more args.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc < 1 && m_options.m_language == lldb::eLanguageTypeUnknown) {
result.AppendErrorWithFormat("%s takes arguments and/or a language",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!typeCS) {
result.AppendError("empty category name not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
DataVisualization::Categories::Enable(typeCS);
if (argc < 1) {
result.AppendErrorWithFormat("%s takes 1 or more arg.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!typeCS) {
result.AppendError("empty category name not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!DataVisualization::Categories::Delete(typeCS))
return result.Succeeded();
} else {
result.AppendError("cannot delete one or more categories\n");
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (argc < 1 && m_options.m_language == lldb::eLanguageTypeUnknown) {
result.AppendErrorWithFormat("%s takes arguments and/or a language",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!typeCS) {
result.AppendError("empty category name not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
DataVisualization::Categories::Disable(typeCS);
if (!regex->IsValid()) {
result.AppendErrorWithFormat(
"syntax error in category regular expression '%s'", arg);
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else if (argc != 0) {
result.AppendErrorWithFormat("%s takes 0 or one arg.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
for (auto &entry : command.entries()) {
if (entry.ref().empty()) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (argc < 1) {
result.AppendErrorWithFormat("%s takes one or more args.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.AppendErrorWithFormat("%s needs either a Python class name or -P to "
"directly input Python code.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
for (auto &arg_entry : command.entries()) {
if (arg_entry.ref().empty()) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_options.m_regex ? eRegexSynth : eRegularSynth,
m_options.m_category, &error)) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (argc < 1) {
result.AppendErrorWithFormat("%s takes one or more args.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (m_options.m_expr_paths.empty()) {
result.AppendErrorWithFormat("%s needs one or more children.\n",
m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
return false;
}
for (auto &arg_entry : command.entries()) {
if (arg_entry.ref().empty()) {
result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
return false;
}
m_options.m_regex ? eRegexFilter : eRegularFilter,
m_options.m_category, &error)) {
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
Thread *thread = GetDefaultThread();
if (!thread) {
result.AppendError("no default thread");
- result.SetStatus(lldb::eReturnStatusFailed);
return false;
}
return true;
} else {
result.AppendError("failed to evaluate expression");
- result.SetStatus(lldb::eReturnStatusFailed);
return false;
}
}
target->GetProcessSP() && target->GetProcessSP()->IsAlive();
if (!process_is_valid) {
result.AppendError("There's no process or it is not alive.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// Target passes our checks, return true.
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(
target, command, wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to be enabled.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(
target, command, wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to be disabled.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
result.SetStatus(eReturnStatusSuccessFinishNoResult);
} else {
result.AppendError("Disable all watchpoints failed\n");
- result.SetStatus(eReturnStatusFailed);
}
} else {
// Particular watchpoints selected; disable them.
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(
target, command, wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to be deleted.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(target, command,
wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to be ignored.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(
target, command, wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to be modified.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(
target, command, wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
// If no argument is present, issue an error message. There's no way to
// set a watchpoint.
if (command.GetArgumentCount() <= 0) {
- result.GetErrorStream().Printf("error: required argument missing; "
- "specify your program variable to watch "
- "for\n");
- result.SetStatus(eReturnStatusFailed);
+ result.AppendError("required argument missing; "
+ "specify your program variable to watch for");
return false;
}
// A simple watch variable gesture allows only one argument.
if (command.GetArgumentCount() != 1) {
- result.GetErrorStream().Printf(
- "error: specify exactly one variable to watch for\n");
- result.SetStatus(eReturnStatusFailed);
+ result.AppendError("specify exactly one variable to watch for");
return false;
}
addr, (uint64_t)size, command.GetArgumentAtIndex(0));
if (error.AsCString(nullptr))
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
addr, (uint64_t)size);
if (error.AsCString(nullptr))
result.AppendError(error.AsCString());
- result.SetStatus(eReturnStatusFailed);
}
return result.Succeeded();
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to have commands added");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(target, command,
valid_wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist to have commands deleted");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() == 0) {
result.AppendError(
"No watchpoint specified from which to delete the commands");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(target, command,
valid_wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
wp->ClearCallback();
} else {
result.AppendErrorWithFormat("Invalid watchpoint ID: %u.\n", cur_wp_id);
- result.SetStatus(eReturnStatusFailed);
return false;
}
}
if (num_watchpoints == 0) {
result.AppendError("No watchpoints exist for which to list commands");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (command.GetArgumentCount() == 0) {
result.AppendError(
"No watchpoint specified for which to list the commands");
- result.SetStatus(eReturnStatusFailed);
return false;
}
if (!CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(target, command,
valid_wp_ids)) {
result.AppendError("Invalid watchpoints specification.");
- result.SetStatus(eReturnStatusFailed);
return false;
}
} else {
result.AppendErrorWithFormat("Invalid watchpoint ID: %u.\n",
cur_wp_id);
- result.SetStatus(eReturnStatusFailed);
}
}
}