Am Sonntag, den 17.02.2008, 19:38 +0100 schrieb Jonas Maebe: > On 17 Feb 2008, at 19:19, Marc Santhoff wrote: > > > That's why I knew I had seen this number, it's in the procedure > > SignalToRunerror(), so I'm not so stupid after all. ;) > > > > Is there any other way of examining the cause besides looking at the > > values of the variables involved in the calculation? > > You could check whether signaltorunerror is maybe missing some entries > in its case statement for SIGFPE reasons, and add any missing ones > (and if so, submit a patch for that).
The cause was an (easy to detect) division by zero. I expected such errors to be caught ... The code for FreeBSD in question looks like this: case sig of SIGFPE : begin Case Info.si_code Of FPE_INTDIV : Res:=200; {integer divide fault. Div0?} FPE_FLTOVF : Res:=205; {Overflow trap} FPE_FLTUND : Res:=206; {Stack over/underflow} FPE_FLTRES : Res:=216; {Device not available} FPE_FLTINV : Res:=216; {Invalid floating point operation} Else Res:=208; {coprocessor error} End; sysResetFPU; End; SIGILL, SIGBUS, SIGSEGV : res:=216; end; What model of the i386 would be the best one for making a start? I'd at least try to get the programmers manual for looking at the FPU exception codes. Or maybe someone know a better way to get the necessary information ... Marc _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal