LLVM  4.0.0
Namespaces | Functions | Variables
PrettyStackTrace.cpp File Reference
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm-c/ErrorHandling.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/Config/config.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Signals.h"
#include "llvm/Support/Watchdog.h"
#include "llvm/Support/raw_ostream.h"
#include <cstdarg>
#include <tuple>
Include dependency graph for PrettyStackTrace.cpp:

Go to the source code of this file.

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

PrettyStackTraceEntryllvm::ReverseStackTrace (PrettyStackTraceEntry *Head)
 
static void PrintStack (raw_ostream &OS)
 
static void PrintCurStackTrace (raw_ostream &OS)
 PrintCurStackTrace - Print the current stack trace to the specified stream. More...
 
static void CrashHandler (void *)
 CrashHandler - This callback is run if a fatal signal is delivered to the process, it prints the pretty stack trace. More...
 
static bool RegisterCrashPrinter ()
 
void LLVMEnablePrettyStackTrace ()
 Enable LLVM's built-in stack trace code. More...
 

Variables

static LLVM_THREAD_LOCAL
PrettyStackTraceEntry
PrettyStackTraceHead = nullptr
 

Function Documentation

static void CrashHandler ( void *  )
static

CrashHandler - This callback is run if a fatal signal is delivered to the process, it prints the pretty stack trace.

Definition at line 100 of file PrettyStackTrace.cpp.

References llvm::c_str(), llvm::SmallVectorBase::empty(), llvm::errs(), PrintCurStackTrace(), and llvm::SmallString< InternalLen >::str().

Referenced by RegisterCrashPrinter().

void LLVMEnablePrettyStackTrace ( void  )

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.

Definition at line 203 of file PrettyStackTrace.cpp.

References llvm::EnablePrettyStackTrace().

static void PrintCurStackTrace ( raw_ostream OS)
static

PrintCurStackTrace - Print the current stack trace to the specified stream.

Definition at line 71 of file PrettyStackTrace.cpp.

References llvm::raw_ostream::flush(), PrettyStackTraceHead, and PrintStack().

Referenced by CrashHandler().

static void PrintStack ( raw_ostream OS)
static
static bool RegisterCrashPrinter ( )
static

Definition at line 174 of file PrettyStackTrace.cpp.

References llvm::sys::AddSignalHandler(), and CrashHandler().

Referenced by llvm::EnablePrettyStackTrace().

Variable Documentation

LLVM_THREAD_LOCAL PrettyStackTraceEntry* PrettyStackTraceHead = nullptr
static