This is the mail archive of the
mailing list for the GDB project.
Re: [MI][patch] broken -target-detach
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: Marc Khouzam <marc dot khouzam at ericsson dot com>
- Date: Sat, 16 Oct 2010 00:47:02 +0100
- Subject: Re: [MI][patch] broken -target-detach
- References: <F7CE05678329534C957159168FA70DEC571AA1B55A@EUSAACMS0703.eamcs.ericsson.se>
On Monday 27 September 2010 21:25:27, Marc Khouzam wrote:
> with GDB 7.2, the MI command -target-detach is not working very well.
> It still assumes that the thread-group id is a pid, instead of the
> new thread-group id format which starts with an 'i'.
> Also, the usage printout does not correspond to the documentation:
> Usage: -target-detach [thread-group]
> -target-detach [ pid | gid ]
Yeah. I think it used to correspond implicitly, since the thread
group id in 7.0 and 7.1 was actually equal to the pid, IIRC. With
7.2, the 1-1 correspondence disappeared, but this command appears
to have been forgotten.
One would hope that frontends would stop using the PID form,
cause you may want to detach from targets that don't have
a PID concept at all, and even though GDB fakes a PID for
you today in such cases, it's better to not assume that.
Unfortunately, 7.2 was released accepting the PID form only,
so we may be better off continue accepting it...
> I have a patch that fixes things to parse both a pid or a thread-group.
> I've added it at the bottom, but I'm not sure it is the right approach.
> With the new global MI flag --thread-group, I wonder if -target-detach
> should take a thread-group as a parameter anymore.
> Note that although "-target-detach i1" does not work,
> "-target-detach --thread-group i1" works.
> I'm not sure what would happen if I did:
> "-target-detach --thread-group i1 <pid or threadGroupId>"
> I'm guessing the --thread-group flag would get ignored.
> What should we do about this?
FWIW, codewise, your patch also looked good to me.
(though IMO it'd be clearer to check for *argv == 'i' even
before trying to parse a number with strtol.)