From: Pedro Alves <palves@redhat.com>
To: Eli Zaretskii <eliz@gnu.org>, Xavier Roirand <roirand@adacore.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFA v3] enable/disable sub breakpoint range
Date: Tue, 03 Oct 2017 16:02:00 -0000 [thread overview]
Message-ID: <a79013c5-c85d-f842-2142-13b06ed2ba43@redhat.com> (raw)
In-Reply-To: <83lgks1e1h.fsf@gnu.org>
On 10/03/2017 03:50 PM, Eli Zaretskii wrote:
>> From: Xavier Roirand <roirand@adacore.com>
>> Date: Tue, 3 Oct 2017 12:26:49 +0200
>>
>> This patch allows enable/disable a range of breakpoint locations
>> using syntax:
>>
>> <breakpoint_number>.<first_location_number>-<last_location_number>
>>
>> with inclusive last_location_number.
>>
>> For instance, if adding a breakpoint to foo() generates 5 breakpoint
>> locations from 1.1 to 1.5 then it's now possible to enable/disable
>> only location breakpoint 1.3 to location breakpoint 1.5
>> (so 1.3, 1.4 and 1.5) using syntax:
>>
>> enable 1.3-5 or disable 1.3-5
>
> What if I have, in addition to the 1.1-1.5 breakpoints also
> breakpoints 4, 5, and 6 -- how do I disable 1.3, 1.4, 1.5, 4, and 5?
> Do I have to say something like "disable 1.3-5.0"?
I hope not. Supposedly you could do it with:
(gdb) delete 1.3 1.4 1.5 4 5
or:
(gdb) delete 1-5 4-5
though I haven't looked at the implementation in detail.
I definitely thing the above is what we should aim for though.
It's very much what we support for thread ID lists, at least
(expect the support for thread ID star ranges).
I'm wondering whether it wouldn't be better to expand this section
of the manual:
@cindex breakpoint ranges
@cindex breakpoint lists
@cindex ranges of breakpoints
@cindex lists of breakpoints
Some @value{GDBN} commands accept a space-separated list of breakpoints
on which to operate. A list element can be either a single breakpoint number,
like @samp{5}, or a range of such numbers, like @samp{5-7}.
When a breakpoint list is given to a command, all breakpoints in that list
are operated on.
To describe locations as well. Similarly to how we describe
"thread ID lists", where we have:
@anchor{thread ID lists}
@cindex thread ID lists
Some commands accept a space-separated @dfn{thread ID list} as
argument. A list element can be:
@enumerate
@item
A thread ID as shown in the first field of the @samp{info threads}
display, with or without an inferior qualifier. E.g., @samp{2.1} or
@samp{1}.
@item
A range of thread numbers, again with or without an inferior
qualifier, as in @var{inf}.@var{thr1}-@var{thr2} or
@var{thr1}-@var{thr2}. E.g., @samp{1.2-4} or @samp{2-4}.
@item
All threads of an inferior, specified with a star wildcard, with or
without an inferior qualifier, as in @var{inf}.@code{*} (e.g.,
@samp{1.*}) or @code{*}. The former refers to all threads of the
given inferior, and the latter form without an inferior qualifier
refers to all threads of the current inferior.
@end enumerate
For example, if the current inferior is 1, and inferior 7 has one
thread with ID 7.1, the thread list @samp{1 2-3 4.5 6.7-9 7.*}
includes threads 1 to 3 of inferior 1, thread 5 of inferior 4, threads
7 to 9 of inferior 6 and all threads of inferior 7. That is, in
expanded qualified form, the same as @samp{1.1 1.2 1.3 4.5 6.7 6.8 6.9
7.1}.
Then commands that accept a thread ID list xref here.
We'd do the same to breakpoint commands, i.e., commands that take
an breakpoint/location list would xref the description of breakpoint
lists.
See commit 5d5658a1d3c3 ("Per-inferior/Inferior-qualified thread IDs")
for how that looked like before support for '*' ranges was added.
(And now I wonder whether it'd make sense to model the breakpoint
number parsing on a simplified version of the thread ID number
parsing. See gdb/tid-parse.h / tid_range_parser.)
Thanks,
Pedro Alves
next prev parent reply other threads:[~2017-10-03 16:02 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-03 10:26 Xavier Roirand
2017-10-03 14:50 ` Eli Zaretskii
2017-10-03 16:02 ` Pedro Alves [this message]
2017-10-03 16:05 ` Pedro Alves
2017-10-03 16:06 ` Xavier Roirand
2017-10-03 16:34 ` Eli Zaretskii
2017-10-03 16:40 ` Pedro Alves
2017-10-03 17:00 ` Eli Zaretskii
2017-10-03 17:15 ` Pedro Alves
2017-10-03 18:32 ` Eli Zaretskii
2017-10-06 8:54 ` Xavier Roirand
2017-10-16 22:21 ` Philippe Waroquiers
2017-10-20 12:17 ` Xavier Roirand
2017-10-20 14:41 ` Pedro Alves
2017-10-20 14:58 ` Pedro Alves
[not found] ` <c1310ac2-b958-f0b6-aabd-5f14f8524b79@adacore.com>
2017-10-23 10:25 ` [RFA v4] " Pedro Alves
2017-10-23 11:07 ` Xavier Roirand
2017-10-26 13:11 ` Pedro Alves
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=a79013c5-c85d-f842-2142-13b06ed2ba43@redhat.com \
--to=palves@redhat.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=roirand@adacore.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