Adopt PrettyStackTrace in LLDB
LLDB needs some minor changes to adopt PrettyStackTrace after https://reviews.llvm.org/D27683. We remove our own SetCrashDescription() function and use LLVM-provided RAII objects instead. We also make sure LLDB doesn't define __crashtracer_info__ which would collide with LLVM's definition. Differential Revision: https://reviews.llvm.org/D27735 llvm-svn: 289711
This commit is contained in:
@@ -52,6 +52,8 @@
|
||||
#include "lldb/API/SBValue.h"
|
||||
#include "lldb/API/SBVariablesOptions.h"
|
||||
|
||||
#include "llvm/Support/PrettyStackTrace.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
||||
@@ -1288,10 +1290,11 @@ lldb::SBValue SBFrame::EvaluateExpression(const char *expr,
|
||||
if (stop_locker.TryLock(&process->GetRunLock())) {
|
||||
frame = exe_ctx.GetFramePtr();
|
||||
if (frame) {
|
||||
std::unique_ptr<llvm::PrettyStackTraceFormat> PST;
|
||||
if (target->GetDisplayExpressionsInCrashlogs()) {
|
||||
StreamString frame_description;
|
||||
frame->DumpUsingSettingsFormat(&frame_description);
|
||||
Host::SetCrashDescriptionWithFormat(
|
||||
PST = llvm::make_unique<llvm::PrettyStackTraceFormat>(
|
||||
"SBFrame::EvaluateExpression (expr = \"%s\", fetch_dynamic_value "
|
||||
"= %u) %s",
|
||||
expr, options.GetFetchDynamicValue(),
|
||||
@@ -1301,9 +1304,6 @@ lldb::SBValue SBFrame::EvaluateExpression(const char *expr,
|
||||
exe_results = target->EvaluateExpression(expr, frame, expr_value_sp,
|
||||
options.ref());
|
||||
expr_result.SetSP(expr_value_sp, options.GetFetchDynamicValue());
|
||||
|
||||
if (target->GetDisplayExpressionsInCrashlogs())
|
||||
Host::SetCrashDescription(nullptr);
|
||||
} else {
|
||||
if (log)
|
||||
log->Printf("SBFrame::EvaluateExpression () => error: could not "
|
||||
|
||||
Reference in New Issue
Block a user