On Saturday 17 Jan 2004 6:53 am, George Anzinger wrote:
Pavel Machek wrote:
Hi!
KGDB 2.0.3 is available at
http://kgdb.sourceforge.net/kgdb-2/linux-2.6.1-kgdb-2.0.3.tar.bz2
Ethernet interface still doesn't work. It responds to gdb for a couple of
packets and then panics. gdb log for ethernet interface is pasted below.
It panics and enter kgdb_handle_exception recursively and silently. To
see the panic on screen make kgdb_handle_exception return immediately if
kgdb_connected is non-zero.
Panic trace is pasted below. It panics in skb_release_data. Looks like
skb handling will have to changed to be have kgdb specific buffers.
This seems to be needed (if I unselect CONFIG_KGDB_THREAD, I get
compile error on x86-64).
Amit, could you explain why this is an option? It seems very useful and
not really too much code...
It saves all registers before switch_to. It does that two times at present. Once (implicit) register save by gcc and an explicit register save in arch/<proc>/kernel/entry.S Second register save in kern_schedule generates a pt_regs structure which gdb can get all registers at once from. If it's omited, gdb has to figure out where gcc has saved registers from the non-standards code in switch_to, which it can't do correctly all the time.
We can have a check for (a new variable) debugger_enabled before calling kern_schedule. That'll be add negligible overhead and will allow extra thread info to be saved only when a debugger is enabled. There will not be any need for CONFIG_KGDB_THREAD also.