[Lldb-commits] [PATCH] D116788: [lldb] Set result error state in 'frame variable'
Dave Lee via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Jan 6 19:48:22 PST 2022
kastiglione created this revision.
kastiglione added reviewers: JDevlieghere, clayborg.
kastiglione requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
Ensure that errors in `frame variable` are reflected in result object.
The statistics for `frame variable` show invocations as being successful, even
when executing one of the error paths.
This change replaces `result.GetErrorStream()` with `result.AppendError()`,
which also sets the status to `eReturnStatusFailed`.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D116788
Files:
lldb/source/Commands/CommandObjectFrame.cpp
Index: lldb/source/Commands/CommandObjectFrame.cpp
===================================================================
--- lldb/source/Commands/CommandObjectFrame.cpp
+++ lldb/source/Commands/CommandObjectFrame.cpp
@@ -558,18 +558,16 @@
}
}
} else if (num_matches == 0) {
- result.GetErrorStream().Printf("error: no variables matched "
- "the regular expression '%s'.\n",
- entry.c_str());
+ result.AppendWarningWithFormat(
+ "no variables matched the regular expression '%s'.",
+ entry.c_str());
}
} else {
if (llvm::Error err = regex.GetError())
- result.GetErrorStream().Printf(
- "error: %s\n", llvm::toString(std::move(err)).c_str());
+ result.AppendError(llvm::toString(std::move(err)));
else
- result.GetErrorStream().Printf(
- "error: unknown regex error when compiling '%s'\n",
- entry.c_str());
+ result.AppendErrorWithFormat(
+ "unknown regex error when compiling '%s'", entry.c_str());
}
} else // No regex, either exact variable names or variable
// expressions.
@@ -605,14 +603,13 @@
valobj_sp->GetParent() ? entry.c_str() : nullptr);
valobj_sp->Dump(output_stream, options);
} else {
- const char *error_cstr = error.AsCString(nullptr);
- if (error_cstr)
- result.GetErrorStream().Printf("error: %s\n", error_cstr);
+ if (auto error_cstr = error.AsCString(nullptr))
+ result.AppendError(error_cstr);
else
- result.GetErrorStream().Printf("error: unable to find any "
- "variable expression path that "
- "matches '%s'.\n",
- entry.c_str());
+ result.AppendErrorWithFormat(
+ "unable to find any variable expression path that matches "
+ "'%s'.",
+ entry.c_str());
}
}
}
@@ -680,7 +677,8 @@
}
}
}
- result.SetStatus(eReturnStatusSuccessFinishResult);
+ if (result.GetStatus() != eReturnStatusFailed)
+ result.SetStatus(eReturnStatusSuccessFinishResult);
}
if (m_option_variable.show_recognized_args) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116788.398039.patch
Type: text/x-patch
Size: 2708 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220107/5f30ce33/attachment-0001.bin>
More information about the lldb-commits
mailing list