From fa0da86a59c502bfbfa01d3d5f694f18f6e8a717 Mon Sep 17 00:00:00 2001 From: Filip Pizlo Date: Mon, 4 Nov 2013 02:22:25 +0000 Subject: 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 --- include/llvm-c/Core.h | 10 ++++------ include/llvm/Support/PrettyStackTrace.h | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/llvm-c/Core.h b/include/llvm-c/Core.h index 88204ef..e18c77c 100644 --- a/include/llvm-c/Core.h +++ b/include/llvm-c/Core.h @@ -434,13 +434,11 @@ void LLVMInstallFatalErrorHandler(LLVMFatalErrorHandler Handler); void LLVMResetFatalErrorHandler(void); /** - * Disable LLVM's built-in stack trace code. This must be called before any - * other LLVM APIs; otherwise the results are undefined. - * - * FIXME: This API should be replaced by a LLVMEnablePrettyStackTrace() - * function; the default should be that pretty stack traces are disabled. + * Enable LLVM's built-in stack trace code. This intercepts the OS's crash + * signals and prints which component of LLVM you were in at the time if the + * crash. */ -void LLVMDisablePrettyStackTrace(void); +void LLVMEnablePrettyStackTrace(void); /** * @defgroup LLVMCCoreContext Contexts diff --git a/include/llvm/Support/PrettyStackTrace.h b/include/llvm/Support/PrettyStackTrace.h index 2122e06..4f68fca 100644 --- a/include/llvm/Support/PrettyStackTrace.h +++ b/include/llvm/Support/PrettyStackTrace.h @@ -21,11 +21,7 @@ namespace llvm { class raw_ostream; - /// DisablePrettyStackTrace - Set this to true to disable this module. This - /// might be necessary if the host application installs its own signal - /// handlers which conflict with the ones installed by this module. - /// Defaults to false. - extern bool DisablePrettyStackTrace; + void EnablePrettyStackTrace(); /// PrettyStackTraceEntry - This class is used to represent a frame of the /// "pretty" stack trace that is dumped when a program crashes. You can define @@ -64,7 +60,9 @@ namespace llvm { const char *const *ArgV; public: PrettyStackTraceProgram(int argc, const char * const*argv) - : ArgC(argc), ArgV(argv) {} + : ArgC(argc), ArgV(argv) { + EnablePrettyStackTrace(); + } virtual void print(raw_ostream &OS) const LLVM_OVERRIDE; }; -- cgit v1.1