Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!mcvax!dik From: dik@cwi.nl (Dik T. Winter) Newsgroups: comp.arch Subject: Re: (Im)precise exceptions Message-ID: <8444@boring.cwi.nl> Date: 5 Oct 89 01:24:41 GMT References: <2353@oakhill.UUCP> <261500010@S34.Prime.COM> <34701@apple.Apple.COM> <2451@wyse.wyse.com> <477@ctycal.UUCP> <265@ssp1.idca.tds.philips.nl> <4796@orca.WV.TEK.COM> <27659@shemp.CS.UCLA.EDU> <269@ssp1.idca.tds.philips.nl> <28764@winchester.mips.COM> <33004@ Organization: CWI, Amsterdam Lines: 33 In article <33004@ames.arc.nasa.gov> lamaster@ames.arc.nasa.gov (Hugh LaMaster) writes: > Of course, the CDC 7600 had not > only imprecise exceptions, but also "delayed exceptions" (is there a > name) when certain floating point conditions produced an indefinite, > which was an *error* at the point you *used* it in another operation, > millions of instructions later... Yes that could be an headache. > > I don't remember imprecise exceptions being that big a deal, although > it did create a small cottage industry for debugging certain difficult > programs :-) > Depends on how imprecise your exceptions are. If you are able to determine by means of a core dump and other information whereabouts the exception did occur, there is no problem. It is difficult when the exception occurs in such a way that there is no means to determine even approximately the place where it did occur. On the Cybers one such exception was jump to address 0 (ARITHMETIC ERROR MODE=0 for those who speak Cybernese). In most cases one of the two standard places where the address of the offending instruction ought to be stored was correct. But there were cases when this was 0 too, in both places. I have never found a reasonable way to debug such a program. A similar thing can occur (I am told) on IBM 360's. It is called a register collapse, which may mean that all registers and the PC are invalid. In any case, for debugging purposes it is not a big deal if the instruction counter can be a bit wrong (or a few bits), as long as it points roughly to the offending place. It gets a bit more difficult if a few jumps are taken in between, but it is still do-able. -- dik t. winter, cwi, amsterdam, nederland INTERNET : dik@cwi.nl BITNET/EARN: dik@mcvax