ProcessMessage.cpp [plain text]
#include "ProcessMessage.h"
using namespace lldb_private;
const char *
ProcessMessage::GetCrashReasonString(CrashReason reason)
{
const char *str = NULL;
switch (reason)
{
default:
assert(false && "invalid CrashReason");
break;
case eInvalidAddress:
str = "invalid address";
break;
case ePrivilegedAddress:
str = "address access protected";
break;
case eIllegalOpcode:
str = "illegal instruction";
break;
case eIllegalOperand:
str = "illegal instruction operand";
break;
case eIllegalAddressingMode:
str = "illegal addressing mode";
break;
case eIllegalTrap:
str = "illegal trap";
break;
case ePrivilegedOpcode:
str = "privileged instruction";
break;
case ePrivilegedRegister:
str = "privileged register";
break;
case eCoprocessorError:
str = "coprocessor error";
break;
case eInternalStackError:
str = "internal stack error";
break;
case eIllegalAlignment:
str = "illegal alignment";
break;
case eIllegalAddress:
str = "illegal address";
break;
case eHardwareError:
str = "hardware error";
break;
case eIntegerDivideByZero:
str = "integer divide by zero";
break;
case eIntegerOverflow:
str = "integer overflow";
break;
case eFloatDivideByZero:
str = "floating point divide by zero";
break;
case eFloatOverflow:
str = "floating point overflow";
break;
case eFloatUnderflow:
str = "floating point underflow";
break;
case eFloatInexactResult:
str = "inexact floating point result";
break;
case eFloatInvalidOperation:
str = "invalid floating point operation";
break;
case eFloatSubscriptRange:
str = "invalid floating point subscript range";
break;
}
return str;
}
const char *
ProcessMessage::PrintCrashReason(CrashReason reason)
{
#ifdef LLDB_CONFIGURATION_BUILDANDINTEGRATION
chcar str[8];
sprintf(str, "%d", reason);
#else
const char *str = NULL;
switch (reason)
{
default:
assert(false && "invalid CrashReason");
break;
case eInvalidCrashReason:
str = "eInvalidCrashReason";
break;
case eInvalidAddress:
str = "eInvalidAddress";
break;
case ePrivilegedAddress:
str = "ePrivilegedAddress";
break;
case eIllegalOpcode:
str = "eIllegalOpcode";
break;
case eIllegalOperand:
str = "eIllegalOperand";
break;
case eIllegalAddressingMode:
str = "eIllegalAddressingMode";
break;
case eIllegalTrap:
str = "eIllegalTrap";
break;
case ePrivilegedOpcode:
str = "ePrivilegedOpcode";
break;
case ePrivilegedRegister:
str = "ePrivilegedRegister";
break;
case eCoprocessorError:
str = "eCoprocessorError";
break;
case eInternalStackError:
str = "eInternalStackError";
break;
case eIllegalAlignment:
str = "eIllegalAlignment";
break;
case eIllegalAddress:
str = "eIllegalAddress";
break;
case eHardwareError:
str = "eHardwareError";
break;
case eIntegerDivideByZero:
str = "eIntegerDivideByZero";
break;
case eIntegerOverflow:
str = "eIntegerOverflow";
break;
case eFloatDivideByZero:
str = "eFloatDivideByZero";
break;
case eFloatOverflow:
str = "eFloatOverflow";
break;
case eFloatUnderflow:
str = "eFloatUnderflow";
break;
case eFloatInexactResult:
str = "eFloatInexactResult";
break;
case eFloatInvalidOperation:
str = "eFloatInvalidOperation";
break;
case eFloatSubscriptRange:
str = "eFloatSubscriptRange";
break;
}
#endif
return str;
}
const char *
ProcessMessage::PrintCrashReason() const
{
return PrintCrashReason(m_crash_reason);
}
const char *
ProcessMessage::PrintKind(Kind kind)
{
#ifdef LLDB_CONFIGURATION_BUILDANDINTEGRATION
chcar str[8];
sprintf(str, "%d", reason);
#else
const char *str = NULL;
switch (kind)
{
default:
assert(false && "invalid Kind");
break;
case eInvalidMessage:
str = "eInvalidMessage";
break;
case eExitMessage:
str = "eExitMessage";
break;
case eLimboMessage:
str = "eLimboMessage";
break;
case eSignalMessage:
str = "eSignalMessage";
break;
case eSignalDeliveredMessage:
str = "eSignalDeliveredMessage";
break;
case eTraceMessage:
str = "eTraceMessage";
break;
case eBreakpointMessage:
str = "eBreakpointMessage";
break;
case eCrashMessage:
str = "eCrashMessage";
break;
}
#endif
return str;
}
const char *
ProcessMessage::PrintKind() const
{
return PrintKind(m_kind);
}