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;