Pin
Typedefs | Enumerations | Functions | Variables
exception.cpp File Reference
#include "level_base.H"

Typedefs

typedef struct EXCEPTION_INFO LEVEL_BASE::EXCEPTION_INFO
 

Enumerations

enum  LEVEL_BASE::EXCEPTION_CLASS {
  LEVEL_BASE::EXCEPTCLASS_NONE,
  LEVEL_BASE::EXCEPTCLASS_UNKNOWN,
  LEVEL_BASE::EXCEPTCLASS_ACCESS_FAULT,
  LEVEL_BASE::EXCEPTCLASS_INVALID_INS,
  LEVEL_BASE::EXCEPTCLASS_INT_ERROR,
  LEVEL_BASE::EXCEPTCLASS_FP_ERROR,
  LEVEL_BASE::EXCEPTCLASS_MULTIPLE_FP_ERROR,
  LEVEL_BASE::EXCEPTCLASS_DEBUG,
  LEVEL_BASE::EXCEPTCLASS_OS
}
 
enum  LEVEL_BASE::EXCEPTION_CODE {
  LEVEL_BASE::EXCEPTCODE_NONE,
  LEVEL_BASE::EXCEPTCODE_ACCESS_INVALID_ADDRESS,
  LEVEL_BASE::EXCEPTCODE_ACCESS_DENIED,
  LEVEL_BASE::EXCEPTCODE_ACCESS_INVALID_PAGE,
  LEVEL_BASE::EXCEPTCODE_ACCESS_MISALIGNED,
  LEVEL_BASE::EXCEPTCODE_ILLEGAL_INS,
  LEVEL_BASE::EXCEPTCODE_PRIVILEGED_INS,
  LEVEL_BASE::EXCEPTCODE_INT_DIVIDE_BY_ZERO,
  LEVEL_BASE::EXCEPTCODE_INT_OVERFLOW_TRAP,
  LEVEL_BASE::EXCEPTCODE_INT_BOUNDS_EXCEEDED,
  LEVEL_BASE::EXCEPTCODE_X87_DIVIDE_BY_ZERO,
  LEVEL_BASE::EXCEPTCODE_X87_OVERFLOW,
  LEVEL_BASE::EXCEPTCODE_X87_UNDERFLOW,
  LEVEL_BASE::EXCEPTCODE_X87_INEXACT_RESULT,
  LEVEL_BASE::EXCEPTCODE_X87_INVALID_OPERATION,
  LEVEL_BASE::EXCEPTCODE_X87_DENORMAL_OPERAND,
  LEVEL_BASE::EXCEPTCODE_X87_STACK_ERROR,
  LEVEL_BASE::EXCEPTCODE_SIMD_DIVIDE_BY_ZERO,
  LEVEL_BASE::EXCEPTCODE_SIMD_OVERFLOW,
  LEVEL_BASE::EXCEPTCODE_SIMD_UNDERFLOW,
  LEVEL_BASE::EXCEPTCODE_SIMD_INEXACT_RESULT,
  LEVEL_BASE::EXCEPTCODE_SIMD_INVALID_OPERATION,
  LEVEL_BASE::EXCEPTCODE_SIMD_DENORMAL_OPERAND,
  LEVEL_BASE::EXCEPTCODE_DBG_BREAKPOINT_TRAP,
  LEVEL_BASE::EXCEPTCODE_DBG_SINGLE_STEP_TRAP,
  LEVEL_BASE::EXCEPTCODE_ACCESS_WINDOWS_GUARD_PAGE,
  LEVEL_BASE::EXCEPTCODE_ACCESS_WINDOWS_STACK_OVERFLOW,
  LEVEL_BASE::EXCEPTCODE_WINDOWS,
  LEVEL_BASE::EXCEPTCODE_RECEIVED_UNKNOWN,
  LEVEL_BASE::EXCEPTCODE_RECEIVED_ACCESS_FAULT,
  LEVEL_BASE::EXCEPTCODE_RECEIVED_AMBIGUOUS_X87,
  LEVEL_BASE::EXCEPTCODE_RECEIVED_AMBIGUOUS_SIMD
}
 
enum  LEVEL_BASE::FAULTY_ACCESS_TYPE {
  LEVEL_BASE::FAULTY_ACCESS_TYPE_UNKNOWN,
  LEVEL_BASE::FAULTY_ACCESS_READ,
  LEVEL_BASE::FAULTY_ACCESS_WRITE,
  LEVEL_BASE::FAULTY_ACCESS_EXECUTE
}
 
enum  LEVEL_BASE::FPERROR {
  LEVEL_BASE::FPERROR_DIVIDE_BY_ZERO = (1<<0),
  LEVEL_BASE::FPERROR_OVERFLOW = (1<<1),
  LEVEL_BASE::FPERROR_UNDERFLOW = (1<<2),
  LEVEL_BASE::FPERROR_INEXACT_RESULT = (1<<3),
  LEVEL_BASE::FPERROR_INVALID_OPERATION = (1<<4),
  LEVEL_BASE::FPERROR_DENORMAL_OPERAND = (1<<5),
  LEVEL_BASE::FPERROR_X87_STACK_ERROR = (1<<6)
}
 

Functions

VOID LEVEL_BASE::PIN_InitExceptionInfo (EXCEPTION_INFO *pExceptInfo, EXCEPTION_CODE exceptCode, ADDRINT exceptAddress)
 
VOID LEVEL_BASE::PIN_InitAccessFaultInfo (EXCEPTION_INFO *pExceptInfo, EXCEPTION_CODE exceptCode, ADDRINT exceptAddress, ADDRINT accessAddress, FAULTY_ACCESS_TYPE accessType=FAULTY_ACCESS_TYPE_UNKNOWN)
 
VOID LEVEL_BASE::PIN_InitWindowsExceptionInfo (EXCEPTION_INFO *pExceptInfo, UINT32 sysExceptCode, ADDRINT exceptAddress, UINT32 numArgs=0, const ADDRINT *pArgs=0)
 
EXCEPTION_CODE LEVEL_BASE::PIN_GetExceptionCode (const EXCEPTION_INFO *pExceptInfo)
 
EXCEPTION_CLASS LEVEL_BASE::PIN_GetExceptionClass (EXCEPTION_CODE exceptCode)
 
ADDRINT LEVEL_BASE::PIN_GetExceptionAddress (const EXCEPTION_INFO *pExceptInfo)
 
VOID LEVEL_BASE::PIN_SetExceptionAddress (EXCEPTION_INFO *pExceptInfo, ADDRINT exceptAddress)
 
FAULTY_ACCESS_TYPE LEVEL_BASE::PIN_GetFaultyAccessType (const EXCEPTION_INFO *pExceptInfo)
 
BOOL LEVEL_BASE::PIN_GetFaultyAccessAddress (const EXCEPTION_INFO *pExceptInfo, ADDRINT *pAccessAddress)
 
UINT32 LEVEL_BASE::PIN_GetFpErrorSet (const EXCEPTION_INFO *pExceptInfo)
 
UINT32 LEVEL_BASE::PIN_GetWindowsExceptionCode (const EXCEPTION_INFO *pExceptInfo)
 
UINT32 LEVEL_BASE::PIN_CountWindowsExceptionArguments (const EXCEPTION_INFO *pExceptInfo)
 
ADDRINT LEVEL_BASE::PIN_GetWindowsExceptionArgument (const EXCEPTION_INFO *pExceptInfo, UINT32 argNum)
 
std::string LEVEL_BASE::PIN_ExceptionToString (const EXCEPTION_INFO *pExceptInfo)
 

Variables

GLOBALCONST UINT32 LEVEL_BASE::MAX_WINDOWS_EXCEPTION_ARGS = 5
 

Detailed Description

Basic definitions pertaining to hardware and software exceptions.