Toggling between remote KGDB and local DDB within a debugging session
Julian Elischer
julian at freebsd.org
Tue Apr 19 15:10:58 UTC 2016
On 19/04/2016 8:49 PM, Aijaz Baig wrote:
> Hello
>
> I think the title says it all!! :)
>
> I would like to know if there is indeed a way to toggle between gdb
> and ddb while debugging a remote kernel. I am already at the gdb (or
> rather kgdb) prompt. From here how do I switch to local ddb on the
> debugged machine??
you don't .. at teh moment I think it' s a one way street, but at one
stage you could "detach"
and it wuld switch back to ddb.. I don't think that works any more..
I've looked at making it work more than once but never got enough of
an understanding to make it work,
I suspect that it is a case of setting the appropriate word somewhere
to teh appropriate value.
How to find that location from gdb is the hard part.
> My kernel configuration file already contains 'options
> BREAK_TO_DEBUGGER' and I have BOTH GDB and DDB configured aka:
> options GDB
> options DDB
>
> I tried adding 'options KDB_UNATTENDED' but that does not make any difference.
>
> As per the developer's handbook, "Every time you type gdb, the mode
> will be toggled between remote GDB and local DDB. In order to force a
> next trap immediately, simply type s (step). Your hosting GDB will now
> gain control over the target kernel:" Now when you type 'gdb' at the
> DDB prompt, KGDB takes over remotely. On continuing at the KGDB
> prompt, you arrive back at the debugged machine but it is not longer
> under the control of DDB.
>
> My question is, how do I drop to DDB from within a running machine
> whose serial ports (albeit virtual ones) are remotely attached to
> another machine? When remote remote KGDB is listening and I force a
> panic using 'sysctl debug.kdb.enter=1', it drops into remote KGDB.
> However, when it is NOT listening on the serial port, the local system
> just freezes
>
> What I want, is to enter ddb on the local machine. Do some debugging
> using it; drop to remote KGDB for things that are best done using
> KGDB, then switch back to local DDB when I'm done.
>
> Is there a way to do that? If yes please do let me know
>
More information about the freebsd-hackers
mailing list