From: Simon Marchi <simon.marchi@polymtl.ca>
To: Pedro Alves <palves@redhat.com>
Cc: Simon Marchi <simon.marchi@ericsson.com>,
gdb-patches@sourceware.org, tom@tromey.com
Subject: Re: [PATCH] Fix -list-thread-groups --available logic and add test
Date: Wed, 04 Oct 2017 14:32:00 -0000 [thread overview]
Message-ID: <4b4d69ff72cd6840be87168174cb7181@polymtl.ca> (raw)
In-Reply-To: <88d47cd0-df4e-84ea-e19d-0e6f7b0dc79b@redhat.com>
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
next prev parent reply other threads:[~2017-10-04 14:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-04 14:01 Simon Marchi
2017-10-04 14:14 ` Pedro Alves
2017-10-04 14:32 ` Simon Marchi [this message]
2017-10-04 14:42 ` Pedro Alves
2017-10-04 16:01 ` Simon Marchi
2017-10-04 16:13 ` Pedro Alves
2017-10-04 16:31 ` Simon Marchi
2017-10-04 16:31 ` [PATCH v3] " Simon Marchi
2017-10-04 16:38 ` Pedro Alves
2017-10-04 16:45 ` Simon Marchi
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=4b4d69ff72cd6840be87168174cb7181@polymtl.ca \
--to=simon.marchi@polymtl.ca \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=simon.marchi@ericsson.com \
--cc=tom@tromey.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