diff options
author | Filip Pizlo <fpizlo@apple.com> | 2013-11-04 02:22:25 +0000 |
---|---|---|
committer | Filip Pizlo <fpizlo@apple.com> | 2013-11-04 02:22:25 +0000 |
commit | c10ca903243f97cbc8014f20c64f1318a57a2936 (patch) | |
tree | 9317a3b5f29d7d0765a4e249decd233d495e566c /llvm/lib/Support/PrettyStackTrace.cpp | |
parent | 2002bfec3ba12133cf4f5ce09cef6d99621cf9d0 (diff) | |
download | bcm5719-llvm-c10ca903243f97cbc8014f20c64f1318a57a2936.tar.gz bcm5719-llvm-c10ca903243f97cbc8014f20c64f1318a57a2936.zip |
Make the pretty stack trace be an opt-in, rather than opt-out, facility. Enable pretty
stack traces by default if you use PrettyStackTraceProgram, so that existing LLVM-based
tools will continue to get it without any changes.
llvm-svn: 193971
Diffstat (limited to 'llvm/lib/Support/PrettyStackTrace.cpp')
-rw-r--r-- | llvm/lib/Support/PrettyStackTrace.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/llvm/lib/Support/PrettyStackTrace.cpp b/llvm/lib/Support/PrettyStackTrace.cpp index d08abc8ce15..722f4ca81b6 100644 --- a/llvm/lib/Support/PrettyStackTrace.cpp +++ b/llvm/lib/Support/PrettyStackTrace.cpp @@ -28,10 +28,6 @@ using namespace llvm; -namespace llvm { - bool DisablePrettyStackTrace = false; -} - static ManagedStatic<sys::ThreadLocal<const PrettyStackTraceEntry> > PrettyStackTraceHead; static unsigned PrintStack(const PrettyStackTraceEntry *Entry, raw_ostream &OS){ @@ -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, 0); + 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(); } |