delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/04/28/11:42:58

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 <muller AT cerbere DOT u-strasbg DOT fr>
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
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 <muller AT cerbere DOT u-strasbg DOT fr>
>>
>>   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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019