Every time
--------------------------- Debugger Exception Notification --------------------------- Project Some.exe raised exception class $C0000005 with message 'access violation at 0x00537b14: read of address 0x00000000'. --------------------------- Break Continue Help --------------------------- 'Exception "EAccessViolation" with message "Access violation at address 00537B30 in module ''TestWordInterface.exe''. Read of address 00000000" at address 00537B30' --------------------------- Testwordinterface --------------------------- Access violation at address 00537B14 in module 'Some.exe'. Read of address 00000000. --------------------------- OK ---------------------------
In system.pas
:
{$IFDEF STACK_BASED_EXCEPTIONS} procedure MapToRunError(P: PExceptionRecord); stdcall; const STATUS_ACCESS_VIOLATION = $C0000005; STATUS_ARRAY_BOUNDS_EXCEEDED = $C000008C; STATUS_FLOAT_DENORMAL_OPERAND = $C000008D; STATUS_FLOAT_DIVIDE_BY_ZERO = $C000008E; STATUS_FLOAT_INEXACT_RESULT = $C000008F; STATUS_FLOAT_INVALID_OPERATION = $C0000090; STATUS_FLOAT_OVERFLOW = $C0000091; STATUS_FLOAT_STACK_CHECK = $C0000092; STATUS_FLOAT_UNDERFLOW = $C0000093; STATUS_INTEGER_DIVIDE_BY_ZERO = $C0000094; STATUS_INTEGER_OVERFLOW = $C0000095; STATUS_PRIVILEGED_INSTRUCTION = $C0000096; STATUS_STACK_OVERFLOW = $C00000FD; STATUS_CONTROL_C_EXIT = $C000013A; var ErrCode: Byte; begin case P.ExceptionCode of STATUS_INTEGER_DIVIDE_BY_ZERO: ErrCode := 200; { reDivByZero } STATUS_ARRAY_BOUNDS_EXCEEDED: ErrCode := 201; { reRangeError } STATUS_FLOAT_OVERFLOW: ErrCode := 205; { reOverflow } STATUS_FLOAT_INEXACT_RESULT, STATUS_FLOAT_INVALID_OPERATION, STATUS_FLOAT_STACK_CHECK: ErrCode := 207; { reInvalidOp } STATUS_FLOAT_DIVIDE_BY_ZERO: ErrCode := 200; { reZeroDivide } STATUS_INTEGER_OVERFLOW: ErrCode := 215; { reIntOverflow} STATUS_FLOAT_UNDERFLOW, STATUS_FLOAT_DENORMAL_OPERAND: ErrCode := 206; { reUnderflow } STATUS_ACCESS_VIOLATION: ErrCode := 216; { reAccessViolation } STATUS_PRIVILEGED_INSTRUCTION: ErrCode := 218; { rePrivInstruction } STATUS_CONTROL_C_EXIT: ErrCode := 217; { reControlBreak } STATUS_STACK_OVERFLOW: ErrCode := 202; { reStackOverflow } else ErrCode := 255; end; RunErrorAt(ErrCode, P.ExceptionAddress); end;