Please review: revamp of kernel debugging code

Marcel Moolenaar marcel at xcllnt.net
Mon Jul 5 22:33:53 PDT 2004


Gang,

I reworked the kernel debugging support to achieve the following:

1. Allow any device to be used as debug port, not just sio(4). This
   is required on platforms that don't support sio(4). Such as ia64.
2. Unify the remote GDB stubs and improve remote debugging. This
   applies to sparc64 and ia64.
3. Improve speed of remote GDB by implementing compression. This is
   pretty much required on ia64, where the register context is 9KB.
3. Add thread awareness to both remote GDB and DDB. This includes
   the ability to switch the active thread and provide backtraces
   for them.
4. Remove the NO_SIO option added on alpha to work around console
   braindeadness. Alpha now looks like a normal platform :-)
5. Detangle remote GDB support from DDB code to allow only remote GDB
   to be configured, but not DDB (and obviously vice versa). This also
   allows other debugger implementations to be added.
6. Improve symbol handling in DDB, especially for the pre-linker case.

I probably forgot some items, but you get the gist.

The patch applies to alpha, amd64, i386, ia64 and sparc64. amd64 is
known to compile but I can't test this stuff yet due to lack of
hardware.

Typically you'll see that #ifdef DDB is being replaced with #ifdef KDB.
This is because DDB indicates whether you want the DDB debugger, but
not having DDB doesn't mean that there isn't any debugger at all. So
a new option KDB as been added to indicate that certain debugging code
should be compiled in.

Please apply the patch and try it out. Note that the patch is quite
large (~363KB), so 

	http://people.freebsd.org/~marcel/gdb.diff

I'll probably commit it in about a week or so if there aren't any
showshopper issues.

FYI,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net


More information about the freebsd-arch mailing list