Date: Tue, 21 Sep 2010 18:27:35 +0300 From: Andriy Gapon <avg@freebsd.org> To: mdf@freebsd.org Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r212964 - head/sys/kern Message-ID: <4C98CEE7.6060802@freebsd.org> In-Reply-To: <AANLkTi=CTr%2BZDs3znsF-SXDp__xxbetjnhSBxiDhfFYy@mail.gmail.com> References: <201009211507.o8LF7iVv097676@svn.freebsd.org> <AANLkTi=CTr%2BZDs3znsF-SXDp__xxbetjnhSBxiDhfFYy@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
on 21/09/2010 18:17 mdf@FreeBSD.org said the following: > On Tue, Sep 21, 2010 at 8:07 AM, Andriy Gapon <avg@freebsd.org> wrote: >> Author: avg >> Date: Tue Sep 21 15:07:44 2010 >> New Revision: 212964 >> URL: http://svn.freebsd.org/changeset/base/212964 >> >> Log: >> kdb_backtrace: stack(9)-based code to print backtrace without any backend >> >> The idea is to add KDB and KDB_TRACE options to GENERIC kernels on >> stable branches, so that at least the minimal information is produced >> for non-specific panics like traps on page faults. >> The GENERICs in stable branches seem to already include STACK option. >> >> Reviewed by: attilio >> MFC after: 2 weeks >> >> Modified: >> head/sys/kern/subr_kdb.c >> >> Modified: head/sys/kern/subr_kdb.c >> ============================================================================== >> --- head/sys/kern/subr_kdb.c Tue Sep 21 12:57:43 2010 (r212963) >> +++ head/sys/kern/subr_kdb.c Tue Sep 21 15:07:44 2010 (r212964) >> @@ -28,6 +28,7 @@ >> __FBSDID("$FreeBSD$"); >> >> #include "opt_kdb.h" >> +#include "opt_stack.h" >> >> #include <sys/param.h> >> #include <sys/systm.h> >> @@ -37,6 +38,7 @@ __FBSDID("$FreeBSD$"); >> #include <sys/pcpu.h> >> #include <sys/proc.h> >> #include <sys/smp.h> >> +#include <sys/stack.h> >> #include <sys/sysctl.h> >> >> #include <machine/kdb.h> >> @@ -300,6 +302,15 @@ kdb_backtrace(void) >> printf("KDB: stack backtrace:\n"); >> kdb_dbbe->dbbe_trace(); >> } >> +#ifdef STACK >> + else { >> + struct stack st; >> + >> + printf("KDB: stack backtrace:\n"); >> + stack_save(&st); >> + stack_print(&st); > > I'd recommend using stack_print_ddb(), as that avoids any locking > which may hang depending on how the kernel panic'd. It seems that stack_print_ddb() depends on DDB? -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C98CEE7.6060802>