Message-Id: <200004281635.SAA21811@cerbere.u-strasbg.fr> X-Sender: muller AT ics DOT u-strasbg DOT fr X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0.2 Date: Fri, 28 Apr 2000 18:21:41 +0200 To: djgpp-workers AT delorie DOT com From: Pierre Muller Subject: Re: interrupt 0x75 limitation in Win95 ? References: <200004271332 DOT PAA01783 AT cerbere DOT u-strasbg DOT fr> <3907023C DOT 30855 DOT 3E86E3 AT localhost> <200004271332 DOT PAA01783 AT cerbere DOT u-strasbg DOT fr> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Reply-To: djgpp-workers AT delorie DOT com At 16:27 27/04/00 -0400, you wrote: >> Date: Thu, 27 Apr 2000 15:18:21 +0200 >> From: Pierre Muller >> >> I get a nice FPU exception, >> but if I redirect the output of this code using DJGPP redir executable >> it does not work anymore :( >> >> The exception seems to be sent to the redir executable rather than to the >> correct executable ! > >Sorry, I don't understand what does this mean: ``exception seems to be >sent to redir''. If I recompile redir.c but remove the djgpp_exception_toggle around the run_program call then the redir program gets the following ! Exiting due to signal SIGFPE Floating Point exception at eip=0000e816, x87 status=0000 eax=00000000 ebx=00000021 ecx=00000000 edx=0003640f esi=0000002b edi=0022c588 ebp=0022c42c esp=0022c41c program=C:\CVS\COMPILER\REDIR.EXE cs: sel=00a7 base=82f75000 limit=0022cfff ds: sel=00af base=82f75000 limit=0022cfff es: sel=00b7 base=82f75000 limit=0022cfff fs: sel=0087 base=000363f0 limit=0000ffff gs: sel=00bf base=00000000 limit=0010ffff ss: sel=00b7 base=82f75000 limit=0022cfff App stack: [0022d000..001ad000] Exceptn stack: [0001b0e0..000191a0] Call frame traceback EIPs: 0x0000e816 ___dpmi_int+118 0x0000bc78 ___spawnvpe+1960 0x0000c5d0 __is_dos_shell+1976 0x0000d24a ___spawnve+630 0x00005040 __shell_command+1816 0x00005383 __shell_command+2651 0x00006068 _system+2552 0x00001f67 ___crt0_glob_function+2551 0x00002907 _main+1363 0x000042f2 ___crt1_startup+178 Debugging this is really hard as GDB does not allow to debug a program inside another one and that anyhow dbgcom.c does not allow int 0x75 to be redirected !! The problem does not seem to be very DJGPP specific : Real mode compiled Turbo Pascal code shows the same feature; a division by zero in FPU is not converted into a RTE 200 if the program is run from another Turbo Pascal real mode program ! Pierre Muller Institut Charles Sadron 6,rue Boussingault F 67083 STRASBOURG CEDEX (France) mailto:muller AT ics DOT u-strasbg DOT fr Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99