From: Andrew Cagney <ac131313@ges.redhat.com>
To: Daniel Jacobowitz <drow@mvista.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: RFC: ``detach remote''
Date: Sun, 11 Aug 2002 08:15:00 -0000 [thread overview]
Message-ID: <3D567F7B.7080502@ges.redhat.com> (raw)
In-Reply-To: <20020811030130.GA10208@nevyn.them.org>
> On Fri, Aug 09, 2002 at 01:48:25PM -0400, Andrew Cagney wrote:
>
>> >Hold on a second. Gdbserver is in wide use; that may not have been
>> >true a couple of years ago, but the reason I've invested so much time
>> >in maintaining it is a continually growing customer demand for it.
>> >People use this, and they are already used to its behavior.
>
>>
>> [Be careful to separate the interests of the fee paying customer from
>> the interests of GDB and the wider GDB community. Fee paying customers
>> have an unfortunate habit of being very short sighted :-( :-)]
>
>
> I get more non-customer feedback on gdbserver than customer feedback,
> actually. Poor choice of words.
I'm told HP once did a study to determine the debug requirements of a
typical user. Turns out a typical debug session looks something like:
$ ./a.out
segmentation fault, core dumped
$ gdb ./a.out
(gdb) run
Program received sig seg
10 a = *b;
(gdb) print b
$1 b = 0
(gdb) quit
``Advanced users'' get to use up/down and backtrace.
Depressing, eh?
>> I'm a user, and I'd prefer to be able to type:
>>
>> (gdb) target remote |ssh machine gdbagent
>> (gdb) file foo
>> (gdb) run
>> Program exited
>> <doh!>
>> (gdb) break main
>> (gdb) run
>> ...
>> (gdb) detach
>> (gdb) monitor ps
>> (gdb) attach
>> .....
>>
>> instead of:
>
>
> Some day :) Those are nice ideas.
It's closer then you might thing. All you need is:
- attach packet
- detach packet with a correct definition
- auto-negotiate of extended-remote
>> I think the command sequence would be:
>>
>> target remote
>> attach <remote-pid>
>> target child -- implicit remote/pid detach
>> attach <local-pid>
>>
>> (Red Herring -- ``target sim'' is equally confused.)
>
>
> The difficulty is what to call "disconnect from the agent". I don't
> really like the ambiguity of the target stack here... I suppose adding
> a "target none" will suffice, but right now the behavior when unpushing
> a running target is to ask the user if they want to kill it. That's
> not going to work if we use this as the method to detach and leave the
> agent running :) Having "target none" detach and "target child" ask
> you if you want to kill doesn't really work either.
>
> What do you think of letting the target control what happens when
> another target is selected? Remote targets could choose to detach.
> That's a little better.
More background:
Looking at the code and recalling comments (some verbal), the original
intent was that there could be several active targets. This allows the
user to switch between targets:
target child
a live process
target core
now look at the core file
target child
back to that live process
I don't know if it works. I've never used it.
Turns out that this ideal was corrupted along the way because the
implementation only allowed one target of each type. As a consequence,
``target remote'' and ``target sim'' both zap ``target child''.
> Or, hey, here's a better idea. A "disconnect" command. Then "target"
> can retain its current semantics (kill) and the user will have an
> explicit way to disconnect if they want.
Hmmm!
Noteing the above -- there can be multiple active targets -- therefor
there does need to be a way of shutting down a specific target.
Presumably ``target none'' would shutdown all of them.
Need to look at a table to see what operations are possible and then
figure out which map onto commands.
enjoy,
Andrew
next prev parent reply other threads:[~2002-08-11 15:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-06 14:00 Daniel Jacobowitz
2002-08-06 22:17 ` Eli Zaretskii
2002-08-07 12:31 ` Andrew Cagney
2002-08-07 12:49 ` Daniel Jacobowitz
2002-08-07 15:31 ` Andrew Cagney
2002-08-08 6:24 ` Daniel Jacobowitz
2002-08-09 10:48 ` Andrew Cagney
2002-08-10 20:01 ` Daniel Jacobowitz
2002-08-11 8:15 ` Andrew Cagney [this message]
2002-08-11 9:35 ` Daniel Jacobowitz
2002-08-11 9:42 ` Andrew Cagney
2002-08-11 9:52 ` Daniel Jacobowitz
2002-08-11 11:02 ` Andrew Cagney
2002-08-11 11:34 ` Daniel Jacobowitz
2002-08-11 13:52 ` Daniel Jacobowitz
2002-08-12 7:36 ` Andrew Cagney
2002-08-12 7:47 ` Daniel Jacobowitz
2002-08-29 15:07 ` Daniel Jacobowitz
2002-09-03 14:32 ` Andrew Cagney
2002-09-03 14:41 ` Daniel Jacobowitz
2002-09-03 22:04 ` Eli Zaretskii
2002-09-03 22:04 ` Eli Zaretskii
2002-09-03 22:14 ` Eli Zaretskii
2002-08-12 10:29 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D567F7B.7080502@ges.redhat.com \
--to=ac131313@ges.redhat.com \
--cc=drow@mvista.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox