mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 23:23:38 -04:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193971 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user