Toggling between remote KGDB and local DDB within a debugging session -
i think title says all!! :)
i know if there indeed way toggle between gdb , ddb while debugging remote kernel.
i @ gdb (or rather kgdb) prompt. here how switch local ddb on debugged machine??
my kernel configuration file contains options break_to_debugger
, have both gdb , ddb configured aka: options gdb options ddb
as per developer's handbook, "every time type gdb, mode toggled between remote gdb , local ddb. in order force next trap immediately, type s (step). hosting gdb gain control on target kernel:"
so, did try typing 'gdb' @ gdb prompt (funny me:d) , expected, unrecognized command. obviously, command supposed typed @ ddb prompt. question is, how drop ddb within running machine serial ports (albeit virtual ones) remotely attached machine's kgdb? when remote gdb listening , force panic using sysctl debug.kdb.enter=1
, drop remote kgdb. however, when not listening, system freezes.
what want, enter ddb on local machine. debugging using it; drop remote kgdb things best done using kgdb, switch local ddb when i'm done.
is there way that? if yes please let me know
kdb contains ddb & kdb backends, there lot of conditions when available. check if backend available, check sysctl debug.kdb.available , debug.kdb.current (sys/kern/subr_kdb.c). if both backends available, debug.kdb.available should contains "ddb gdb".
the possible way toggle between backends (gdb / ddb) enter ddb @ first, call gdb , make debugging. exit gdb, , return ddb (actually new trap happen, seems ctrl+c required). means before panic, debug.kdb.current should set "ddb".
i hope help.
Comments
Post a Comment