Subject: Re: -current does not like non-boot disk
To: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
From: Allen Briggs <briggs@canolog.ninthwonder.com>
List: port-mac68k
Date: 12/14/1998 22:15:22
> Hum. Would have been nice if a panic preserved the cpu registers, no?

It can't do so easily, I don't think.  The Debugger() call basically
trips straight into the debugger from whereever you are, and panic just
calls Debugger().  The registers are whatever they were when Debugger
was called.  I.e., they're correct for being inside of panic(), not for
being inside of the function that called panic().  I think the value of
0x2704 (splhigh/spl7) is set by the KPRINTF_MUTEX_ macros in printf()
(called by panic).  Of course, it's possible to unwind the stack and get
most of the register values, but d0, d1, a0, and a1 are defined to be
throwaways on the stack.

> Still, of course, you may be right. On the other hand, when I recall my
> experiences with the iwm code, once driver code runs amok, you can expect
> _anything_ illogical in your variables.

True.  As soon as you start scribbling on the stack or in other memory,
you can start getting some wierd stuff.

-allen

-- 
                    Allen Briggs - briggs@ninthwonder.com
       Try free *nix: http://www.netbsd.org/, http://www.freebsd.org/,
		      http://www.linux.org/, http://www.openbsd.org/