[Kgdb-bugreport] [RFC] [Crash-utility] Patch to use gdb's bt in crash - works great with kgdb!

Vivek Goyal vgoyal at in.ibm.com
Thu Aug 31 14:25:04 UTC 2006


On Thu, Aug 31, 2006 at 10:44:47AM +0530, Amit S. Kale wrote:
> On Thursday 31 August 2006 02:10, Vivek Goyal wrote:
> > On Wed, Aug 30, 2006 at 12:35:21PM -0700, Piet Delaney wrote:
> > > > Simple question -- and to be quite honest with you -- I don't
> > > > understand why you wouldn't want to simply use gdb alone
> > > > in this case?
> > >
> > > I don't see any reason for core file not to be read correctly by
> > > gdb. It's convenient to use gdb directly sometimes, for example
> > > while using the ddd GUI.
> >
> > You can run gdb to open core files as of today but the debugging
> > capability will be limited. For ex. kernel core headers have the info
> > of linearly mapped region only and they don't contain the virt address
> > info of non-linearly mapped regions. So one can not debug the non-linearly
> > mapped regions like modules.
> 
> Adding this functionality should be easy. One only has to create crash file 
> support for the osabi "Linux-kernel".

For module debugging, the analysis tool shall have to know some kernel
internals and traverse the page table. Gdb does not know about kernel
internals and we shall have to write page table walker etc.

Crash is already doing all this stuff. It also uses gdb as backend to
retrieve important debugging info etc. So why to duplicate the effort
and enable gdb to know about kernel internals and implement page
table walker etc. Anyway, a user space utility knowing about kernel
internals is bad because kernel changes so fast and keeping pace with
it becomes an maintenance nightmare.

On the side note, this year at OLS, maneesh conducted a BOF on sort of
creating a library in kernel like klibc which is maintained with kernel
and user space analysis tools can take advantage of that libarary and get
some reprieve in terms of maintenace overheads.

Thanks
Vivek







More information about the Crash-utility mailing list