Toggling between remote KGDB and local DDB within a debugging session


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 :rolleyes:) prompt. From here how do I switch to local ddb on the debugged machine??

My kernel configuration file already contains ' options BREAK_TO_DEBUGGER' and I have BOTH GDB and DDB configured aka:
options GDB
options DDB

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:"

So, I did try typing 'gdb' at the gdb prompt (funny me:D) and as expected, it was an unrecognized command. Obviously, this command is supposed to be typed at the ddb prompt. But my question is, how do I drop to ddb from within a running machine? When remote GDB is listening and I force a panic using ' sysctl debug.kdb.enter=1', it does drop into remote KGDB. However, when it is NOT listening, the 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