I would like to discuss one of the features a lot of people have been requesting us: multiple debugger instances per project.
Could you share your thoughts and suggestions of how the feature should work from the user's point of view?
Some problems to consider:
1. When you add a line breakpoint, to what process are you targeting it? Should the breakpoint be shared between the processes
currently debugged (the debugger tries to add breakpoint requests to all debuggees). Or if the breakpoint should be set up for only
one process, what's the best way to choose for which one?
2. When you perform such actions like stepping, expression evaluation etc, to what debuggee process are you expecting the actions to
be applied to?
3. When hovering with the mouse over a variable, a tooltip with the value is shown. Provided the class exists in several debuggees,
what value to show?
One of the important things that should be introduced, is a notion of "active debuggee" - the debuggee to which all the actions
described above will be applied (similar to a control currently posessing focus in a GUI form). Then the question arises: what are
the events that make the debuggee "active": explicit selection as "active" by the user or/and hitting the breakpoint in the target
process? More generally, how do you see the "focus changing policy" that won't confuse the user and make him/her "lost in the
I see only one use-case when multiple debuggers would be useful - client/server applications. But personally I would choose another
approach for debugging: I would set up 2 projects (for client and server) and opened them simultaneously: each project could have
its own debugger and since the project are in different frames, my debugging contexts are well separated. I don't see any problems
in such configuration, but looks like some people have different opinion : please share your thoughts why the suggested approach
soes not suit you and why you find opening multiple debuggers in one project more convenient.
Perhaps you could describe other situations when multiple debuggers would be handy: the use-cases you describe could help us make
the feature really useful (and usable) for those requested it.
JetBrains, Inc, http://www.intellij.com
"Develop with pleasure!"