This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]