Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 44986 - Support for Breakpoint groups
Summary: Support for Breakpoint groups
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 2.1.1   Edit
Hardware: All All
: P4 enhancement (vote)
Target Milestone: 3.1 M2   Edit
Assignee: Darin Wright CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 1545 23279 26857 41565 52518 69088 71375 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-10-15 23:38 EDT by Eric Estievenart CLA
Modified: 2004-11-16 08:50 EST (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Estievenart CLA 2003-10-15 23:38:14 EDT
I saw few enh. requests concerning the breakpoints view,
and I thing that the best would be to have an arborescent view,
permitting to group them logically and enable only some groups.

Groups would have to be 3-state for the view to be really efficient,
internal selection should be kept when the parent group is
enabled/disabled.

The view could provide a global toggle action to enable/enable
all the breakpoints, without needing to put them under a top level root
node.

By the way, when a breakpoint is disabled (maybe because its parent group is),
its font should be grayed (more user friendly).

Tell me if you need nore info on that, but it is something I would
really be happy with !

--Steve
Comment 1 Darin Wright CLA 2003-10-30 10:13:13 EST
*** Bug 1545 has been marked as a duplicate of this bug. ***
Comment 2 Darin Wright CLA 2003-10-30 10:14:17 EST
Marking as 3.0 candidate. However, due to current resources setting as P4. 
Contributions welcome.
Comment 3 Eric Estievenart CLA 2003-10-30 10:34:27 EST
Trying to invent the 36 hours day, so I know what it is ;-)
I will first fix one I promised on the win32 SWT Tree, then check
my priorities, and possibly work on it. I'll tell you anyway.
(Except if someone else wants to work on it)
-- 
Steve
Comment 4 Darin Wright CLA 2004-02-19 14:04:33 EST
*** Bug 52518 has been marked as a duplicate of this bug. ***
Comment 5 Darin Wright CLA 2004-03-09 10:33:08 EST
Note we intend to add a toggle to enable/disable all breakpoints without 
losing their state (effectivele enables/disables the breakpoint manager). 
However, we will not have support for breakpoint groups in 3.0. See bug 10078.

Deferred.
Comment 6 Darin Wright CLA 2004-08-04 09:58:11 EDT
*** Bug 71375 has been marked as a duplicate of this bug. ***
Comment 7 Darin Wright CLA 2004-08-11 15:55:46 EDT
*** Bug 41565 has been marked as a duplicate of this bug. ***
Comment 8 Darin Wright CLA 2004-08-12 14:05:32 EDT
*** Bug 69088 has been marked as a duplicate of this bug. ***
Comment 9 Darin Wright CLA 2004-08-17 09:27:03 EDT
Open for 3.1
Comment 10 Darin Wright CLA 2004-08-26 10:44:09 EDT
*** Bug 23279 has been marked as a duplicate of this bug. ***
Comment 11 Darin Wright CLA 2004-08-26 10:56:56 EDT
*** Bug 26857 has been marked as a duplicate of this bug. ***
Comment 12 Randy Hudson CLA 2004-08-26 11:38:19 EDT
There should be implied groups, such as all of the breakpoints within a given 
Resource. Changing the groups state to disabled should effectively disable the 
children, but not change their individual enablement state when the group is 
enabled again.  To indicate this, maybe tri-state checkboxes could be used, or 
graying the text as suggested above.
Comment 13 Jared Burns CLA 2004-08-30 17:34:43 EDT
Randy, how hot are you really on the notion of automatically created groups versus user created? 
Do you find yourself wanting to disable all/only the breakpoints in a specific file very often?

My intuition says that it would be cleaner and more useful to just provide for user-defined groups. 
For switching between problems, user-defined groups would provide a two-click (turn one group 
off and another one on) context switch. Auto-grouping would be more clicks and more work - you 
have to find and disable/enable every file that's involved in a problem.

I just don't see the auto-groups being what you want most of the time.
Comment 14 Randy Hudson CLA 2004-08-30 17:58:21 EDT
So if I'm looking for a breakpoint in some plug-in X, I may have some 
breakpoints defined in plug-in Y that I want to disable.  So I want to turn off 
that group "Plug-in Y".  Turning off things at the resource level is not as 
common, but it does help in managing the number of breakpoints and finding the 
one you want.

With manual groups, could a breakpoint/exception be added to multiple groups or 
just one?  Could groups be nested?  Group control sounds like a nice feature, 
but what I suggested isn't mutually exclusive.

You could still support implied groups when the explicit group is set to NULL.  
For example, when I double-click in the ruler and set a breakpoint, it doesn't 
belong to any manually defined groups.  So such a breakpoint could be auto-
grouped according to Project, then Resource.  At least until the user drags it 
under another group.
Comment 15 quartz quartz CLA 2004-08-30 18:02:29 EDT
first choice: all manual, with drag and drop.
autogroup if available, should have option to turn off.

reason: the break point view is often very small, 3-6 lines at most, 400 pix
wide. Any excessive indent or scrolling is not exactly welcomed, hence my desire
for grouping.
Comment 16 Randy Hudson CLA 2004-08-30 18:27:48 EDT
I don't remember what the default debug perspective looks like. My view 
displays ~15 lines and is stacked on Variables View. The grouping and 
indentation would be flattened whenever possible. So if there was just 1 
breakpoint in a resource, it could be:

+ My Project
  - ThisIsMyType [line: 40] someMethod(int)
  - ThisIsAnotherType [line: 60] someMethod(int)

So we're talking about a one indentation.  Once you get to 2 breakpoints in a 
resource, the horizontal space requirements go down, not up:

+ My Project
  - ThisIsMyType
    - someMethod(int) [line: 40]
    + anotherMethod [multiple lines]
    - thirdMethod
      - line 90
      - line 92

To reduce indentation, the user could configure three boolean preferences:
-Group by project
-Group by resource/type
-Group by method

I'm just throwing out ideas.  Just like the Properties View, there could be a 
toggle action to show/hide groups.
Comment 17 Jared Burns CLA 2004-08-30 19:04:11 EDT
Instead of doing auto-groups, I'm now thinking about new selection actions. Something like:
  Select All (we already have this)
  Select Same Type
  Select Same Resource

This way, you'd get the ability to perform operations like "disable all the breakpoints in this file" or 
"delete all my exception breakpoints" without disrupting your user-defined groups.
Comment 18 Darin Wright CLA 2004-08-30 22:31:56 EDT
I think we should consider allowing a breakpoint to be in more than one group. 
For example, if I have groups set up for different applications or different 
problem scenarios in the same application, it might be common to have an NPE 
breakpoint in each group. If I can only enable this in one group, it seems 
rather limiting.
Comment 19 Jared Burns CLA 2004-08-31 02:19:14 EDT
Allowing breakpoints in multiple groups would be a problem. Disabling one group 
would have the possible side effect of turning off a breakpoint on another 
group. This creates a situation where the user has to wrestle the UI to get 
reasonable behavior.

In the NPE example, the NPE breakpoint doesn't belong in either group if you 
want it to be independent.
Comment 20 Darin Wright CLA 2004-08-31 09:07:27 EDT
It can also work to your advantage. For example - I create a group for all 
exception breakpoints, and I also have exception breakpoints in other groups 
of application specific breakpoints. If I decide to turn off all exception 
breakpoints, but still want my other application specific breakpoints, it's 
easy to do.
Comment 21 Randy Hudson CLA 2004-08-31 10:30:21 EDT
Selection actions might be useful for creating groups, but it's not equivalent 
to having group support.  With groups, you can disable the group, and still 
retain the individual enablement states (for example half of the breakpoints 
within a file are enabled).

A regexp feature would be welcome too.
Comment 22 Jared Burns CLA 2004-09-10 16:37:28 EDT
Core support for breakpoint groups implemented with UI in place for experimentation.

Please verify base support, DW. I'll be filing separate bugs for UI features as we come up with 
ideas.
Comment 23 Darin Wright CLA 2004-09-14 09:33:20 EDT
Verified.
Comment 24 Michael Van Meekeren CLA 2004-11-15 16:49:57 EST
hmm... actually now that I'm trying it out, I would have thought it makes more
sense to group the breakpoints by launch config.  I.e. "when I launch this app,
turn on the following breakpoints and not all the other ones I happen to have
set" .. this seems to be in line with the way one would program and not want all
breakpoints constantly being hit when in fact you have moved on and are
debugging a different problem.

My debugging and launching efforts often cross the same file (esp. in Platform
UI) so grouping by file or project is not useful.
Comment 25 Darin Wright CLA 2004-11-15 16:53:22 EST
You can group breakpoints manually into launch config groups. Generally, the 
debugger cannot infer which breakpoints are for which config.
Comment 26 Michael Van Meekeren CLA 2004-11-16 08:40:51 EST
Agree, that works.

The support could exist however to allow you to (when creating a custom group)
associate it with a launch config so that it is turned "on" when that launch occurs.
Comment 27 Darin Wright CLA 2004-11-16 08:50:07 EST
I see, I'll enter that as a new feature request.