Skip site navigation (1)Skip section navigation (2)
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>