LLVM: lib/Support/Signals.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
static std::array< CallbackAndCookie, MaxSignalHandlerCallbacks > & CallBacksToRun ()
static void insertSignalHandler (sys::SignalHandlerCallback FnPtr, void *Cookie)
static bool findModulesAndOffsets (void **StackTrace, int Depth, const char **Modules, intptr_t *Offsets, const char *MainExecutableName, StringSaver &StrPool)
static FormattedNumber format_ptr (void *PC)
Format a pointer value as hexadecimal.
static LLVM_ATTRIBUTE_USED bool printSymbolizedStackTrace (StringRef Argv0, void **StackTrace, int Depth, llvm::raw_ostream &OS)
Helper that launches llvm-symbolizer and symbolizes a backtrace.
static bool printMarkupContext (raw_ostream &OS, const char *MainExecutableName)
static LLVM_ATTRIBUTE_USED bool printMarkupStackTrace (StringRef Argv0, void **StackTrace, int Depth, raw_ostream &OS)
Variables
static bool DisableSymbolicationFlag = false
static ManagedStatic< std::string > CrashDiagnosticsDirectory
constexpr char DisableSymbolizationEnv [] = "LLVM_DISABLE_SYMBOLIZATION"
constexpr char LLVMSymbolizerPathEnv [] = "LLVM_SYMBOLIZER_PATH"
constexpr char EnableSymbolizerMarkupEnv [] = "LLVM_ENABLE_SYMBOLIZER_MARKUP"
static constexpr size_t MaxSignalHandlerCallbacks = 8

CallBacksToRun()

findModulesAndOffsets()

static bool findModulesAndOffsets ( void ** StackTrace, int Depth, const char ** Modules, intptr_t * Offsets, const char * MainExecutableName, StringSaver & StrPool ) static

format_ptr()

insertSignalHandler()

printMarkupContext()

printMarkupStackTrace()

printSymbolizedStackTrace()

Helper that launches llvm-symbolizer and symbolizes a backtrace.

Definition at line 142 of file Signals.cpp.

References Allocator, llvm::SmallString< InternalLen >::c_str(), llvm::StringRef::contains(), llvm::sys::fs::createTemporaryFile(), llvm::Depth, DisableSymbolicationFlag, DisableSymbolizationEnv, llvm::StringRef::empty(), llvm::sys::ExecuteAndWait(), llvm::sys::fs::exists(), findModulesAndOffsets(), llvm::sys::findProgramByName(), llvm::format_hex(), format_ptr(), llvm::formatv(), llvm::MemoryBuffer::getFile(), llvm::sys::fs::getMainExecutable(), LLVMSymbolizerPathEnv, OS, llvm::sys::path::parent_path(), llvm::right_justify(), llvm::StringRef::split(), llvm::StringRef::starts_with(), and llvm::SmallString< InternalLen >::str().

CrashDiagnosticsDirectory

DisableSymbolicationFlag

bool DisableSymbolicationFlag = false static

DisableSymbolizationEnv

constexpr char DisableSymbolizationEnv[] = "LLVM_DISABLE_SYMBOLIZATION" constexpr

EnableSymbolizerMarkupEnv

constexpr char EnableSymbolizerMarkupEnv[] = "LLVM_ENABLE_SYMBOLIZER_MARKUP" constexpr

LLVMSymbolizerPathEnv

constexpr char LLVMSymbolizerPathEnv[] = "LLVM_SYMBOLIZER_PATH" constexpr

MaxSignalHandlerCallbacks

constexpr size_t MaxSignalHandlerCallbacks = 8 staticconstexpr