[fpc-devel] Exception handler under Go32V2 and NT-system

borsa77 at libero.it borsa77 at libero.it
Mon Apr 21 15:28:43 CEST 2008

I have read of some crashes with gdb under go32v2. So looking throught 
dpmiexcp.pp file I found in the djgpp_exception_toggle procedure a 
potential problem. The line

if (_os_trueversion <> $532) and get_pm_exception_handler(i,_except) then

checks for NT-system to fallback into real mode DPMI 0.9 because, as in 
the comment, NT-system seems to not set carryflag. I think otherwise this 
problem is already fixed in the r152 where flag is passed properly onto the 
stack via the standard call, but regardless of that NT-system is continuing 
by the chunk

(_os_trueversion <> $532) and

to skip DPMI 1.0 protected mode even now it could use it. Unlucky I have 
only a Win98 box so I cannot test if one removes the above chunk, it will 
bring to a better result.
There's another similar question in the dpmi_set_coprocessor_emulation 
function, does the cdecl call handle correct the flag?
Regards, Marco.

More information about the fpc-devel mailing list