//===-- CrashReason.h -------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef liblldb_CrashReason_H_ #define liblldb_CrashReason_H_ #include "lldb/lldb-types.h" #include <signal.h> #include <string> enum class CrashReason { eInvalidCrashReason, // SIGSEGV crash reasons. eInvalidAddress, ePrivilegedAddress, eBoundViolation, // SIGILL crash reasons. eIllegalOpcode, eIllegalOperand, eIllegalAddressingMode, eIllegalTrap, ePrivilegedOpcode, ePrivilegedRegister, eCoprocessorError, eInternalStackError, // SIGBUS crash reasons, eIllegalAlignment, eIllegalAddress, eHardwareError, // SIGFPE crash reasons, eIntegerDivideByZero, eIntegerOverflow, eFloatDivideByZero, eFloatOverflow, eFloatUnderflow, eFloatInexactResult, eFloatInvalidOperation, eFloatSubscriptRange }; std::string GetCrashReasonString(CrashReason reason, lldb::addr_t fault_addr); std::string GetCrashReasonString(CrashReason reason, const siginfo_t &info); const char *CrashReasonAsString(CrashReason reason); CrashReason GetCrashReason(const siginfo_t &info); #endif // #ifndef liblldb_CrashReason_H_ |