This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Build question


On Fri, 2009-09-11 at 16:22 +0100, Pedro Alves wrote:
> On Friday 11 September 2009 15:42:53, Danny Backx wrote:
> > Question : it looks like breaking a gdb-gdbserver session always kills
> > the inferior. Or at least it does so on my target. Has this been subject
> > of research yet ? I would expect it to be possible to detach without
> > killing the inferior, much like you can when debugging a linux process
> > from a linux gdb.
> 
> What do you mean by breaking, and what do you mean by
> detaching?  Please be specific.

Good question :-) Turns out I had not analysed my question sufficiently
before sending this mail.

What I was looking for is for gdbserver (and the inferior) to linger
after disconnecting gdb-gdbserver, until I reconnect to it with maybe
another gdb session.

Maybe my question is a bit too funky.

> Neither DebugActiveProcessStop nor DebugSetProcessKillOnExit were support
> by Windows CE up until version 5.  I see that DebugActiveProcessStop
> was added to CE 6.0:

> Try checking if DebugActiveProcessStop is non-NULL here on
> your CE >= 6.0 device, and tweak this code to make it possible to detach
> with DebugActiveProcessStop even if we don't support
> DebugSetProcessKillOnExit.
> 
> (In fact, I don't understand why DebugSetProcessKillOnExit is
> needed here.  does Windows really kill a detached inferior when
> gdbserver exits _after_having_detached_from_it_?)

No, I don't see that. FYI see two examples below, both show both the gdb
and gdbserver session (they're on my screen in two xterms).

Scenario 1 : detach gdb (from gdbserver)
 -> gdbserver appears to detach from inferior
 -> gdbserver terminates
 -> inferior continues to run

(gdb) target remote ebox:9999
Remote debugging using ebox:9999
(gdb) detach
Ending remote debugging.
(gdb) 

\network\x86>  gdbserver :9999 /network/x86/usedemo.exe
Process /network/x86/usedemo.exe created; pid = 88473610
Listening on port 9999
Remote debugging from host 172.17.1.10
Detaching from process 88473610
\network\x86> In main
Message from DLL
After DLL call

Scenario 2 : quit gdb
 -> gdb tells gdbserver to terminate inferior
 -> gdbserver terminates inferior
 -> gdbserver terminates

(gdb) target remote ebox:9999
Remote debugging using ebox:9999
(gdb) q
A debugging session is active.

        Inferior 1 [Remote target] will be killed.

Quit anyway? (y or n) y


\network\x86> gdbserver :9999 /network/x86/usedemo.exe
Process /network/x86/usedemo.exe created; pid = 92536842
Listening on port 9999
Remote debugging from host 172.17.1.10
Killing all inferiors
\network\x86> 

	Danny
-- 
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]