This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA v3] enable/disable sub breakpoint range
On 10/20/2017 03:41 PM, Pedro Alves wrote:
> On 10/20/2017 01:17 PM, Xavier Roirand wrote:
>> Hello,
>>
>> Le 10/3/17 à 6:02 PM, Pedro Alves a écrit :
>>> On 10/03/2017 03:50 PM, Eli Zaretskii wrote:
>>>>> From: Xavier Roirand <roirand@adacore.com>
>>>
>>> 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.)
>>>
>>
>> Unfortunately I don't have enough time to work on a simplified version
>> of the thread id number parsing in order to provide this enable/disable
>> sub range feature. What I can add in my current patch is the support for
>> .* notation if you think this is something really useful. Let me know
>> what do you think so I can propose a new patch.
>
> Eh, I never suggested to add the '*' parsing. Above I explicitly
> pointed at the commit _before_ that, even, so you could see how the
> documentation looked like then.
I'm having trouble applying your patch locally. Saving your email
as an mbox file and then using 'git am' gets me:
$ git am /tmp/bps.mbox
Applying: enable/disable sub breakpoint range
/home/pedro/gdb/mygit/src/.git/rebase-apply/patch:25: trailing whitespace.
static void map_breakpoint_number_range (std::pair <int, int>
fatal: corrupt patch at line 26
Patch failed at 0001 enable/disable sub breakpoint range
The copy of the patch that failed is found in:
/home/pedro/gdb/mygit/src/.git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
I tried fixing it manually, but failed. I also tried creating
a patch from the email's rendered content but failed to apply
too. :-/
Could you resend with git send-email? That would be best.
Or, as an attachment?
(In any case, if rebased to current master too then
that'd be appreciated.)
Thanks,
Pedro Alves