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
diff --git a/lldb/source/API/SBFrame.cpp b/lldb/source/API/SBFrame.cpp
index 1845b12..5500c33 100644
--- a/lldb/source/API/SBFrame.cpp
+++ b/lldb/source/API/SBFrame.cpp
@@ -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 @@
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 @@
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 "