Re: KGDB 2.0.3 with fixes and development in ethernet interface

From: Amit S. Kale
Date: Sat Jan 17 2004 - 04:30:48 EST


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.
--
Amit Kale
EmSysSoft (http://www.emsyssoft.com)
KGDB: Linux Kernel Source Level Debugger (http://kgdb.sourceforge.net)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/