kernel/kld debugging on amd64 (qemu gdbstub, gdbinit, asf(1)...)

Juergen Lock nox at jelal.kn-bremen.de
Thu May 1 15:57:46 UTC 2008


On Thu, May 01, 2008 at 10:14:34AM -0400, John Baldwin wrote:
> On Thursday 01 May 2008 06:51:38 am Juergen Lock wrote:
> > Before I forget, here are some things I found out while debugging the
> > kqemu amd64 SMP issue...
> >
> > 1. I used a patched kgdb to be able to use it with qemu's gdbstub
> > (kgdb -r 127.1:1234 kernel.debug), that patch I already posted:
> > 	http://docs.freebsd.org/cgi/mid.cgi?20080304213153.GB15959
> > (Yeah you can also used regular gdb or gdb66 from ports with qemu's
> > gdbstub, but those don't understand kernel stack frames and maybe
> > other things...)
> 
> This patch just went into the tree (a variant of it) in the commits to kgdb in 
> HEAD earlier this week.
> 
Ah cool!

> > 2. the ps and kldstat macros from src/tools/debugscripts/gdbinit.kernel
> > (and probably others) use %08x for pointers, so on 64 bit archs like amd64
> > the upper half gets chopped off.  I didn't fix this correctly tho, but
> > instead defined my own ps64 and kldstat64 macros using %016lx...
> 
> Try using macros at www.freebsd.org/~jhb/gdb/gdb6 instead as they handle 
> 64-bit vs 32-bit.
> 
 Ah, good to know for next time...

> > 3. asf(1) also didn't work correctly for amd64 (bss and data were wrong),
> > here is the patch I ended up using: (maybe you want to ifdef for amd64
> > instead of checking for zero VMA tho)
> 
> I haven't seen this, but I also haven't used asf(8) on amd64.  You can grab 
> the kgdb sources from HEAD though and then you can use kgdb's native kld 
> support (i.e. add-kld and the shared library stuff) for remote targets to 
> load symbols.
> 
 OK, will try next time. :)

 Thanx,
	Juergen


More information about the freebsd-amd64 mailing list