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>