Mail Archives: djgpp-workers/1996/04/21/23:17:51
and
On 21/4/96 8:47 am, Charles Sandmann <sandmann AT clio DOT rice DOT edu> did thus say >>>
> > For fsdb, would the following modification be correct
> >
> > else if (i == 8 || (i >= 10 && i <= 14) || i == 17)
> > message (CL_Error, "Exception %d (0x%02x) occurred, error code=%#lx",
> > i, i, a_tss.tss_error);
> > | else if (i < 32) /* use to be just 'else' */
> > message (CL_Error, "Exception %d (0x%02x) occurred", i, i);
> >
> > This 'fixes' the spurious Exception bug I mentioned earlier, but it would be
preferable if I
> > could find the real cause of this problem. I've looked at the exception
handling code in
> > src/libc/go32 (dpmiexcp.c and exceptn.s) but I couldn't find anything
definite. Is there
> > somewhere else I should be looking?
>
> This should NOT be made - we actually have some pseudo exceptions
> (hardware interrupts translated to exceptions) with values 0x78 (timer)
> 0x79 (CTRL-C) and 0x75 (FP errors). If there are other errors they need
> to be fixed, not break the debugger handling of these other exceptions!
0x79 abd 0x75 are handled by code above the statement in question. 0x78 is not
handled. However, I DO agree with you, the real cause of the problem should be
found, which is what I am trying to do (so far without any success).
i is being set from a_tss.tss_irqn and for some reason this value has garbage
occasionaly. So far I have no yet been able to narrow down the circumstances of
the problem.
- Raw text -