X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSupport%2FPrettyStackTrace.cpp;h=987778a1bde66999171556f571c94c59e352dddb;hb=c00ae934322b82493ef3fe429c3373028e7fe97d;hp=d08abc8ce155c2eb227184743b1d5ed52bd9350e;hpb=35a1e9414d48f52093679b4723578192cceeb3c5;p=oota-llvm.git diff --git a/lib/Support/PrettyStackTrace.cpp b/lib/Support/PrettyStackTrace.cpp index d08abc8ce15..987778a1bde 100644 --- a/lib/Support/PrettyStackTrace.cpp +++ b/lib/Support/PrettyStackTrace.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/PrettyStackTrace.h" +#include "llvm-c/Core.h" #include "llvm/ADT/SmallString.h" #include "llvm/Config/config.h" // Get autoconf configuration settings #include "llvm/Support/ManagedStatic.h" @@ -20,7 +21,6 @@ #include "llvm/Support/ThreadLocal.h" #include "llvm/Support/Watchdog.h" #include "llvm/Support/raw_ostream.h" -#include "llvm-c/Core.h" #ifdef HAVE_CRASHREPORTERCLIENT_H #include @@ -28,10 +28,6 @@ using namespace llvm; -namespace llvm { - bool DisablePrettyStackTrace = false; -} - static ManagedStatic > PrettyStackTraceHead; static unsigned PrintStack(const PrettyStackTraceEntry *Entry, raw_ostream &OS){ @@ -50,7 +46,7 @@ static unsigned PrintStack(const PrettyStackTraceEntry *Entry, raw_ostream &OS){ /// PrintCurStackTrace - Print the current stack trace to the specified stream. static void PrintCurStackTrace(raw_ostream &OS) { // Don't print an empty trace. - if (PrettyStackTraceHead->get() == 0) return; + if (!PrettyStackTraceHead->get()) return; // If there are pretty stack frames registered, walk and emit them. OS << "Stack dump:\n"; @@ -103,17 +99,7 @@ static void CrashHandler(void *) { #endif } -static bool RegisterCrashPrinter() { - if (!DisablePrettyStackTrace) - sys::AddSignalHandler(CrashHandler, 0); - return false; -} - PrettyStackTraceEntry::PrettyStackTraceEntry() { - // The first time this is called, we register the crash printer. - static bool HandlerRegistered = RegisterCrashPrinter(); - (void)HandlerRegistered; - // Link ourselves. NextEntry = PrettyStackTraceHead->get(); PrettyStackTraceHead->set(this); @@ -149,6 +135,17 @@ void PrettyStackTraceProgram::print(raw_ostream &OS) const { OS << '\n'; } -void LLVMDisablePrettyStackTrace() { - DisablePrettyStackTrace = true; +static bool RegisterCrashPrinter() { + sys::AddSignalHandler(CrashHandler, nullptr); + return false; +} + +void llvm::EnablePrettyStackTrace() { + // The first time this is called, we register the crash printer. + static bool HandlerRegistered = RegisterCrashPrinter(); + (void)HandlerRegistered; +} + +void LLVMEnablePrettyStackTrace() { + EnablePrettyStackTrace(); }