forked from OSchip/llvm-project
[lldb] Set result error state in 'frame variable'
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`.
Differential Revision: https://reviews.llvm.org/D116788
Recommitting after D116901 and D116863.
(cherry picked from commit 2c7d10c412
)
This commit is contained in:
parent
c63a3175c2
commit
696f9706f3
|
@ -558,18 +558,16 @@ protected:
|
|||
}
|
||||
}
|
||||
} else if (num_matches == 0) {
|
||||
result.GetErrorStream().Printf("error: no variables matched "
|
||||
"the regular expression '%s'.\n",
|
||||
entry.c_str());
|
||||
result.AppendErrorWithFormat(
|
||||
"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 @@ protected:
|
|||
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 @@ protected:
|
|||
}
|
||||
}
|
||||
}
|
||||
result.SetStatus(eReturnStatusSuccessFinishResult);
|
||||
if (result.GetStatus() != eReturnStatusFailed)
|
||||
result.SetStatus(eReturnStatusSuccessFinishResult);
|
||||
}
|
||||
|
||||
if (m_option_variable.show_recognized_args) {
|
||||
|
|
Loading…
Reference in New Issue