Multiple locations and breakpoints confusion.

Pedro Alves palves@redhat.com
Wed May 2 16:27:00 GMT 2018


On 05/02/2018 05:15 PM, Pedro Alves wrote:
> On 05/02/2018 04:13 PM, Eli Zaretskii wrote:
>>> From: Pedro Alves <palves@redhat.com>
>>> Date: Tue, 1 May 2018 20:32:28 +0100
>>>
>>> IMO, it's working as intended.
>>
>> I agree that it's working as intended, but I think the UI is
>> confusing.
>>
>>> Maybe it'd help if we would come up with some concise
>>> way to display a location as enabled-but-note-parent-is-disabled
>>> differently, like with a different letter or some extra character
>>> or something like that.
>>
>> If disabling the parent disables all of its children, why not show all
>> of the children disabled when the parent is disabled?  IOW, why can't
>> we make the y/n display use the same logic as the one used when
>> deciding whether a breakpoint at a particular location is disabled?

> That loses information, i.e., one can't tell which ones were explicitly
> disabled, and will be re-enabled.  Really can't see why that's better
> and more desirable.  And it'd still be confusing to someone -- "why is
> it that when I disable the parent, all its locations show as disabled,
> but when I enable the parent, only some locations show as enabled,
> why not all?" would then be a legitimate question.


To expand on the "losing information" aspect, as an example,
you may want to enable the individual locations of the
breakpoints with the parent breakpoint disabled, then e.g.,
add a condition and commands to the (parent) breakpoint, and then
finally enable the breakpoint.  Not being able to see effect
of the location enablement in the enabled state of locations
in "info breakpoints" while the parent is disabled seems
undesirable to me.  Like e.g.:

 (gdb) disable 1.1-2
 (gdb) disable 1
 (gdb) enable 1.1
 (gdb) info breakpoints 
 Num     Type           Disp Enb Address            What
 1       breakpoint     keep n   <MULTIPLE>         
 1.1                         y     0x00000000004004b3 in multiple_test::foo(int) at multiple.cpp:10
 1.2                         n     0x00000000004004c3 in multiple_test::foo(double) at multiple.cpp:15

Here, it seems very desirable to me to be able to tell that
location 1.1 is going to be enabled if I decide to enable breakpoint 1.

Thanks,
Pedro Alves



More information about the Gdb mailing list