From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17572 invoked by alias); 12 Nov 2010 19:07:31 -0000 Received: (qmail 17559 invoked by uid 22791); 12 Nov 2010 19:07:30 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from imr4.ericy.com (HELO imr4.ericy.com) (198.24.6.8) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 12 Nov 2010 19:06:47 +0000 Received: from eusaamw0711.eamcs.ericsson.se ([147.117.20.178]) by imr4.ericy.com (8.14.3/8.14.3/Debian-9.1ubuntu1) with ESMTP id oACJU9Yf000636; Fri, 12 Nov 2010 13:30:17 -0600 Received: from EUSAACMS0703.eamcs.ericsson.se ([169.254.1.63]) by eusaamw0711.eamcs.ericsson.se ([147.117.20.178]) with mapi; Fri, 12 Nov 2010 14:06:18 -0500 From: Marc Khouzam To: "'Pedro Alves'" CC: "'gdb-patches@sourceware.org'" , "'Tom Tromey'" Date: Fri, 12 Nov 2010 19:07:00 -0000 Subject: RE: [MI][patch] broken -target-detach Message-ID: References: <201010160047.03094.pedro@codesourcery.com> <201011121643.34464.pedro@codesourcery.com> In-Reply-To: <201011121643.34464.pedro@codesourcery.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-11/txt/msg00162.txt.bz2 > -----Original Message----- > From: Pedro Alves [mailto:pedro@codesourcery.com]=20 > Sent: Friday, November 12, 2010 11:44 AM > To: Marc Khouzam > Cc: 'gdb-patches@sourceware.org'; 'Tom Tromey' > Subject: Re: [MI][patch] broken -target-detach >=20 > On Friday 12 November 2010 16:01:20, Marc Khouzam wrote: >=20 > > > Unfortunately, 7.2 was released accepting the PID form only, > > > so we may be better off continue accepting it... > >=20 > > If we put this fix in the 7.2 branch, could we get rid of the > > PID form or is it too late? >=20 > IMO, it's too late for 7.2. Having 7.2 and 7.2.1 handle this > command's argument incompatibly would cause pain for frontends > already passing it an argument, and we can avoid causing that pain. > So IMO, since it's quite easy to do so, we should continue=20 > handling it. > We can consider mentioning in the manual that the PID form > is deprecated, and that it may be removed in a later release. > Then we can consider removing it in the future if it ever causes > trouble. (I'm not suggesting you do that.) >=20 > > I knew someone was going to call me on that :-). Here is the new > > patch which still accepts PID.=20=20 >=20 > Sorry about that. :-) >=20 > > I have to apologize, I just don't > > have the time to get a test case for it. I hope the patch is useful > > enough as it is. >=20 > It sure is, thanks for persevering. >=20 > > Good for the 7.2 branch too? >=20 > IMO, yes. >=20 > You've just given me a new chance to nit on formatting, though! :-) >=20 > > + /* First see if we are dealing with a thread-group id */ >=20 > Period and double space at end of sentence, like: >=20 > /* First see if we are dealing with a thread-group id. */ >=20 >=20 > > + if (*(argv[0]) =3D=3D 'i') >=20 > if (*argv[0] =3D=3D 'i') >=20 > Okay with those changes. Great! I committed the following to HEAD and 7_2: 2010-11-12 Marc Khouzam * mi/mi-main.c (mi_cmd_target_detach): Accept new thread-group id format. ### Eclipse Workspace Patch 1.0 #P src Index: gdb/mi/mi-main.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvs/src/src/gdb/mi/mi-main.c,v retrieving revision 1.178.2.2 diff -u -r1.178.2.2 mi-main.c --- gdb/mi/mi-main.c 1 Sep 2010 19:16:00 -0000 1.178.2.2 +++ gdb/mi/mi-main.c 12 Nov 2010 19:00:48 -0000 @@ -418,19 +418,40 @@ mi_cmd_target_detach (char *command, char **argv, int argc) { if (argc !=3D 0 && argc !=3D 1) - error ("Usage: -target-detach [thread-group]"); + error ("Usage: -target-detach [pid | thread-group]"); =20 if (argc =3D=3D 1) { struct thread_info *tp; char *end =3D argv[0]; - int pid =3D strtol (argv[0], &end, 10); + int pid; =20 - if (*end !=3D '\0') - error (_("Cannot parse thread group id '%s'"), argv[0]); + /* First see if we are dealing with a thread-group id. */ + if (*argv[0] =3D=3D 'i') + { + struct inferior *inf; + int id =3D strtoul (argv[0] + 1, &end, 0); + + if (*end !=3D '\0') + error (_("Invalid syntax of thread-group id '%s'"), argv[0]); + + inf =3D find_inferior_id (id); + if (!inf) + error (_("Non-existent thread-group id '%d'"), id); + + pid =3D inf->pid; + } + else + { + /* We must be dealing with a pid. */ + pid =3D strtol (argv[0], &end, 10); + + if (*end !=3D '\0') + error (_("Invalid identifier '%s'"), argv[0]); + } =20 /* Pick any thread in the desired process. Current - target_detach deteches from the parent of inferior_ptid. */ + target_detach detaches from the parent of inferior_ptid. */ tp =3D iterate_over_threads (find_thread_of_process, &pid); if (!tp) error (_("Thread group is empty"));