Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Sep 2005 06:19:19 +0000
From:      Ben Kaduk <minimarmot@gmail.com>
To:        Greg 'groggy' Lehey <grog@freebsd.org>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: How to debug kernels (was: cvs commit: src/sys/conf kern.post.mk)
Message-ID:  <47d0403c050911231950b35471@mail.gmail.com>
In-Reply-To: <20050912005134.GB2929@wantadilla.lemis.com>
References:  <20050911002229.51F4916A471@hub.freebsd.org> <432382BC.5080105@root.org> <p0623090bbf493c4e4b1e@128.113.24.47> <20050911022901.GA3090@xor.obsecurity.org> <20050912005134.GB2929@wantadilla.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 9/12/05, Greg 'groggy' Lehey <grog@freebsd.org> wrote:
>=20
> On Saturday, 10 September 2005 at 22:29:02 -0400, Kris Kennaway wrote:
> > On Sat, Sep 10, 2005 at 10:01:15PM -0400, Garance A Drosihn wrote:
> >> At 6:05 PM -0700 9/10/05, Nate Lawson wrote:
> >>> David E. O'Brien wrote:
> >>>> obrien 2005-09-11 00:22:21 UTC
> >>>>
> >>>> FreeBSD src repository
> >>>>
> >>>> Modified files:
> >>>> sys/conf kern.post.mk <http://kern.post.mk>; Log:
> >>>> For HEAD, install a kernel with debug information if DEBUG is a=20
> kernel
> >>>> config option. It is too easy to loose the build directory and not=
=20
> have
> >>>> symbols for kgdb to read.
> >>>> Revision Changes Path
> >>>> 1.84 +4 -17 src/sys/conf/kern.post.mk
> >>>
> >>> I disagree with this change. We do not need to waste the space
> >>> in /. If I'm running a debug kernel, it is based on the latest
> >>> version of kernel.debug in my kernel compile dir and I know to
> >>> find it there.
> >>
> >> Fwiw, I've been burned by building a debug kernel, only to have
> >> removed the original compile-directory for that kernel by the time I
> >> actually *needed* the debug symbols. It's one thing if you're building
> >> a debug kernel because you know you're going to spend the next hour
> >> debugging some change. It's another if you're building a debug kernel
> >> because your machine might panic sometime in the next two or three
> >> weeks.
> >
> > Likewise, I also find this change very useful. When I'm juggling a
> > few dozen panics on a few dozen machines with a few dozen different
> > customized source trees, it's hard to keep track of all the
> > kernel.debugs. Now I don't have to.
>=20
> A lot must depend on how you use your debug kernel. One of the
> biggest problems I've found is keeping the kernel and the sources in
> sync. This change makes it more difficult. Also, the kernel build
> can install debugging macros in the build directory; if you blow away
> that directory, you've lost the macros too.
>=20
> The method I use is described in
> http://wwww.lemis.com/grog/Papers/Debug-tutorial/tutorial.pdf.
> Basically, you debug from the kernel build directory and just pull in
> the dump from /var/crash. I'm planning to present it again in Basel
> in November, so if anybody disagrees with the approach, now is the
> time to tell me. With this method, having symbols in the booted
> kernel is a waste of time and space.
>=20
> Greg
> --
> See complete headers for address and phone numbers.
>=20
>=20
>=20
Somewhat of a side point, but what do people think of doing a similar thing=
=20
for loadable modules? I am actually quite ignorant about the matter, not=20
even knowing if a DEBUG=3D-g line in a kernel config file propogates to=20
modules built at the same time (I should think it would), but the same=20
situation can occur for modules as for the core kernel.

In fact, I just today needed snd_ich.ko.debug, but very nearly blasted it=
=20
away with a buildworld/buildkernel, since I want to check if the panic I ge=
t=20
has been fixed in the past week. Luckily, the need to save such a file was=
=20
pointed out to me quickly, but (as a fairly ignorant end-user), it may make=
=20
it possible to solve a problem reported by the same.
This of course magnifies the space requirement, and deciding which modules=
=20
to include could be a big bikeshed, but if the debug kernel on / stays, it=
=20
should be thought about.

Ben Kaduk



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47d0403c050911231950b35471>