From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 35597 invoked by alias); 4 Oct 2017 14:32:47 -0000 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 Received: (qmail 35585 invoked by uid 89); 4 Oct 2017 14:32:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=designing, Hx-languages-length:1561 X-HELO: smtp.polymtl.ca Received: from smtp.polymtl.ca (HELO smtp.polymtl.ca) (132.207.4.11) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 04 Oct 2017 14:32:46 +0000 Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id v94EWdrX029394 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 4 Oct 2017 10:32:44 -0400 Received: by simark.ca (Postfix, from userid 112) id 4C01A1E539; Wed, 4 Oct 2017 10:32:39 -0400 (EDT) Received: from simark.ca (localhost [127.0.0.1]) by simark.ca (Postfix) with ESMTP id BFD9B1E524; Wed, 4 Oct 2017 10:32:37 -0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 04 Oct 2017 14:32:00 -0000 From: Simon Marchi To: Pedro Alves Cc: Simon Marchi , gdb-patches@sourceware.org, tom@tromey.com Subject: Re: [PATCH] Fix -list-thread-groups --available logic and add test In-Reply-To: <88d47cd0-df4e-84ea-e19d-0e6f7b0dc79b@redhat.com> References: <1507125639-522-1-git-send-email-simon.marchi@ericsson.com> <88d47cd0-df4e-84ea-e19d-0e6f7b0dc79b@redhat.com> Message-ID: <4b4d69ff72cd6840be87168174cb7181@polymtl.ca> X-Sender: simon.marchi@polymtl.ca User-Agent: Roundcube Webmail/1.3.0 X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Wed, 4 Oct 2017 14:32:39 +0000 X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00083.txt.bz2 On 2017-10-04 10:14, Pedro Alves wrote: > On 10/04/2017 03:00 PM, Simon Marchi wrote: > >> +# List a specific process. >> +set spawn_id [remote_spawn target $binfile] >> +set pid [spawn_id_get_pid $spawn_id] >> +mi_gdb_test \ >> + "-list-thread-groups --available i${pid}" \ >> + "\\^done,groups=\\\[{id=\"${pid}\",type=\"process\",.*}\\\]" \ >> + "list available thread groups with filter" > > Won't that ".*" above end up matching more than one process, if > GDB's filtering ends up a bit borked? Can we be sure that > only one process comes out? I tried designing it like that but found it was pretty difficult because of the description field: 55 ^done,groups=[{id="499",type="process",description="/home/emaisin/build/binutils-gdb/gdb/testsuite/outputs/gdb.mi/list-thread-groups-available/list-thread-groups-available",user="emaisin",cores=["1"]}]^M If we have something like this: groups=[{id="$decimal",type="process",description=".*",...}] and there are two process entries, the .* in the description field could match from the beginning of the first description field to the end of the second description field. So we wouldn't catch that there are two processes instead of one. And we can't really restrict its content, because it could potentially include [,}"]. Do you have any idea on how to do this with a regex? The only "real" solution I see is to have a proper MI parser that parses MI to a tcl data structure, and assert that the list of groups is of length 1. Simon