Mail Archives: djgpp-workers/2000/05/03/02:43:10
On Tue, 2 May 2000, Pierre Muller wrote:
> >> This Win95 limitation can be important for programs using C++
> exceptions !!
> >
> >How are C++ exceptions related to this issue? I don't think they use the
> >FP exception or signals, do they?
>
> I don't know about C++ but in Delphi object pascal apparently
> the FPU exceptions are converted into software exception that can be handled
> like any other sofware exceptions and thus need to be
> able to support multiple time calls, which is the origin
> of this whole thread.
Oh, I see: you are saying that programs which use C++ exceptions to
handle SIGFPE could fail to receive the exception. Yes, this could be
a problem.
However, Andris tells us that signals are not used in C++ exceptions,
so I guess this isn't a problem after all.
> For instance if you take GNU make Version 3.77
> and run from it a program that raises such an exception
> then its make itself that crashes with a SIGFPE !!
This probably means that we need to augment Make with special
treatment for SIGFPE when it invokes child programs. Thanks for
pointing this out.
> If "make" would hook the interrupt 0x31 and remember addresses of the
> child
> interrupt 0x75 handlers it could redirect the exception on the basis
> of the selector part of the exception address in the FPU
> (basically trying to rectify the wrong behavior of WinXX !)
Oh, you want the parent to lcall the child's exception handler, like
dbgcomm.c does, yes? I don't think this will work. By the time the
parent program receives the FP exception, the child already exited.
So you cannot lcall it, because it's not there: its memory was
released, its descriptors were deallocated, etc. You will be jumping
into the Great Void...
- Raw text -