[llvm] r193937 - When LLVM is embedded in a larger application, it's not OK for LLVM to intercept crashes. LLVM already has
Alp Toker
alp at nuanti.com
Sat Nov 2 21:07:41 PDT 2013
Could we make this the default, then provide
LLVMEnablePrettyStackTrace() instead?
By definition the C API is for embedding, and embedders don't expect
each API they use to install global signal handlers.
Alp.
On 03/11/2013 00:29, Filip Pizlo wrote:
> Author: fpizlo
> Date: Sat Nov 2 19:29:47 2013
> New Revision: 193937
>
> URL: http://llvm.org/viewvc/llvm-project?rev=193937&view=rev
> Log:
> When LLVM is embedded in a larger application, it's not OK for LLVM to intercept crashes. LLVM already has
> the ability to disable this functionality. This patch exposes it via the C API.
>
>
> Modified:
> llvm/trunk/include/llvm-c/Core.h
> llvm/trunk/lib/Support/PrettyStackTrace.cpp
>
> Modified: llvm/trunk/include/llvm-c/Core.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/Core.h?rev=193937&r1=193936&r2=193937&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm-c/Core.h (original)
> +++ llvm/trunk/include/llvm-c/Core.h Sat Nov 2 19:29:47 2013
> @@ -434,6 +434,12 @@ void LLVMInstallFatalErrorHandler(LLVMFa
> 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.
> + */
> +void LLVMDisablePrettyStackTrace(void);
> +
> +/**
> * @defgroup LLVMCCoreContext Contexts
> *
> * Contexts are execution states for the core LLVM IR system.
>
> Modified: llvm/trunk/lib/Support/PrettyStackTrace.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/PrettyStackTrace.cpp?rev=193937&r1=193936&r2=193937&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/PrettyStackTrace.cpp (original)
> +++ llvm/trunk/lib/Support/PrettyStackTrace.cpp Sat Nov 2 19:29:47 2013
> @@ -20,6 +20,7 @@
> #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 <CrashReporterClient.h>
> @@ -147,3 +148,7 @@ void PrettyStackTraceProgram::print(raw_
> OS << ArgV[i] << ' ';
> OS << '\n';
> }
> +
> +void LLVMDisablePrettyStackTrace() {
> + DisablePrettyStackTrace = true;
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
--
http://www.nuanti.com
the browser experts
More information about the llvm-commits
mailing list