Home | History | Annotate | Download | only in llvm-c
      1 /*===-- llvm-c/ErrorHandling.h - Error Handling C Interface -------*- C -*-===*\
      2 |*                                                                            *|
      3 |*                     The LLVM Compiler Infrastructure                       *|
      4 |*                                                                            *|
      5 |* This file is distributed under the University of Illinois Open Source      *|
      6 |* License. See LICENSE.TXT for details.                                      *|
      7 |*                                                                            *|
      8 |*===----------------------------------------------------------------------===*|
      9 |*                                                                            *|
     10 |* This file defines the C interface to LLVM's error handling mechanism.      *|
     11 |*                                                                            *|
     12 \*===----------------------------------------------------------------------===*/
     13 
     14 #ifndef LLVM_C_ERROR_HANDLING_H
     15 #define LLVM_C_ERROR_HANDLING_H
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 
     21 typedef void (*LLVMFatalErrorHandler)(const char *Reason);
     22 
     23 /**
     24  * Install a fatal error handler. By default, if LLVM detects a fatal error, it
     25  * will call exit(1). This may not be appropriate in many contexts. For example,
     26  * doing exit(1) will bypass many crash reporting/tracing system tools. This
     27  * function allows you to install a callback that will be invoked prior to the
     28  * call to exit(1).
     29  */
     30 void LLVMInstallFatalErrorHandler(LLVMFatalErrorHandler Handler);
     31 
     32 /**
     33  * Reset the fatal error handler. This resets LLVM's fatal error handling
     34  * behavior to the default.
     35  */
     36 void LLVMResetFatalErrorHandler(void);
     37 
     38 /**
     39  * Enable LLVM's built-in stack trace code. This intercepts the OS's crash
     40  * signals and prints which component of LLVM you were in at the time if the
     41  * crash.
     42  */
     43 void LLVMEnablePrettyStackTrace(void);
     44 
     45 #ifdef __cplusplus
     46 }
     47 #endif
     48 
     49 #endif
     50