From owner-freebsd-current Thu May 16 1:18:47 2002 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id 4300137B40E; Thu, 16 May 2002 01:18:42 -0700 (PDT) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id SAA24575; Thu, 16 May 2002 18:18:34 +1000 Date: Thu, 16 May 2002 18:20:57 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: John Baldwin Cc: Dag-Erling Smorgrav , , Subject: Re: loader failure In-Reply-To: Message-ID: <20020516175948.B1999-100000@gamplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Wed, 15 May 2002, John Baldwin wrote: > On 15-May-2002 Dag-Erling Smorgrav wrote: > > John Baldwin writes: > >> The kernel overflowed it's stack. In SRM, you can try to debug this > >> by using 'e sp' to get the stack pointer then get a stack dump and save > >> a copy of it in a log or something, reboot the machine, then use gdb's > >> list command on the kernel.debug to figure out the source:line for all > >> the kernel-text addresses in the stack dump to figure out the backtrace. > > > > How do I get a stack trace? I can't get the 'examine' command to > > actually print anything... > > It depends on which machine actually. :-/ First do 'e sp' to get the > stack pointer. Then you want to do something like this: > > e -n 100 At least for i386's, it can be useful to set $esp and $eip to non-preposterous values if they are hosed (record the old values first). Bugs in the pagefault handler make the behaviour for invalid pointers very bad. The main one trap_pfault() doesn't give up immediately if the pagefault is from within ddb. In old versions of FreeBSD, this is probably only fatal if trap_pfault() blocks, but in -current is is fatal in the usual case where trap_fault() acquires a sleep lock. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message