Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Sep 2005 10:21:34 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org, "David E. O'Brien" <obrien@FreeBSD.org>, Nate Lawson <nate@root.org>, Garance A Drosihn <drosih@rpi.edu>
Subject:   How to debug kernels (was: cvs commit: src/sys/conf kern.post.mk)
Message-ID:  <20050912005134.GB2929@wantadilla.lemis.com>
In-Reply-To: <20050911022901.GA3090@xor.obsecurity.org>
References:  <20050911002229.51F4916A471@hub.freebsd.org> <432382BC.5080105@root.org> <p0623090bbf493c4e4b1e@[128.113.24.47]> <20050911022901.GA3090@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--98e8jtXdkpgskNou
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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   Log:
>>>>  For HEAD, install a kernel with debug information if DEBUG is a kernel
>>>>  config option.  It is too easy to loose the build directory and not 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.

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.

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.

Greg
--
See complete headers for address and phone numbers.

--98e8jtXdkpgskNou
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)

iD8DBQFDJNEWIubykFB6QiMRAl1uAJ0WpTPyyuzgx4syeso3mqsBJp1csACeN59a
yv2UsIIgDyStPGMAjQ4kNo4=
=98E8
-----END PGP SIGNATURE-----

--98e8jtXdkpgskNou--



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