delorie.com/archives/browse.cgi | search |
> My real concern is that divexcp.exe only works correctly >if run directly from command line and completely differently >if run from any other Dos Program ! OK, apparently the problem is the following : the FPU code runs independantly of the rest and when a FPU exception is raised the OS tries to determine the process to which it shoud redirect the error i.e. to which it should call int 0x75. And it fails !!! Even a win32 executable raising a FPU exception does not get it if it is run from a Dos executable that sets the 0x75 interrupt vector! The interrupt called is allways that of the first Dos program loaded in the calling chain. Example : wredir.exe is a win32 exe that calls argv[1] exe redir.exe is the same in DJGPP or Dos (int 75 hooked and not reset defore calling Dos Int !) tdiv.exe is a win32 exe that raised a div by zero ! both "rdiv" and "wredir tdiv.exe" work as expected but in "redir tdiv.exe" and even "wredir redir.exe tdiv.exe" the interrupt called is in the DJGPP redir program. Only programs like VC do not have this kind of troubles!
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |