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 -