Message-Id: Date: Mon, 22 Apr 1996 15:15:39 +1200 From: Bill Currie To: djgpp-workers AT delorie DOT com Subject: Re: Re: SQUISHED BUG: symbol name length bug in edebug32 and On 21/4/96 8:47 am, Charles Sandmann 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.