Date: Tue, 19 Apr 2016 23:10:46 +0800 From: Julian Elischer <julian@freebsd.org> To: Aijaz Baig <aijazbaig1@gmail.com>, freebsd-hackers@freebsd.org, freebsd-stable@freebsd.org Subject: Re: Toggling between remote KGDB and local DDB within a debugging session Message-ID: <57164A76.4050403@freebsd.org> In-Reply-To: <CAHB2L%2Bde=Bxn4G2uEDdN%2BSPY=SREN9REGShV=gnRombjqStYzw@mail.gmail.com> References: <CAHB2L%2Bde=Bxn4G2uEDdN%2BSPY=SREN9REGShV=gnRombjqStYzw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?57164A76.4050403>