The NetBeans Debugger Interface: Session View

For: NB 3.4 Debugger Interface
Author: David-John Burrowes
Revision History: in CVS Repository

Contents:


Introduction

The sessions component is used to display a list of all the debugging sessions running in the IDE current moment.

This document doesn't discuss general behavior of a debugging session (e.g. what happens when an exception is thrown in the process), nor how a session gets created.

Each session can be thought of as having:

Session List

Appearance

Standard list. Initial set of columns are Name and State. One session is always the current one (unless there are no sessions)

Behavior

Standard behavior only.

Session Row

Appearance

Standard Properties

All debugger types must provide at least two properties for each session:

Name Column

The Name column is the identifier column for the session component.

The name should be some identifier which will be meaningful to the user. This name will be used not only in this list, but elsewhere in the IDE interface when the session needs to be identified (for instance, in the list of sessions in the Finish dialog).

The NetBeans debugging architecture must assure that this name is always unique. If a debugger engine tries to register a session with a name that already is being used, the debugging architecture should append a numeric suffix to name the name unique (this should be a suffix of the form " (#)" where # is a number.

The debugger engine should be able to change the name of the session at any time. For example, the Dbx Debugger will use the name of the program being debugged for the name. If the process calls exec(), then the debugger engine will change the name of the session to the new program name.

An icon must be shown to the left of the name. This icon must distinguish whether the session is the "current session". Individual debugger engines may add a badge to the icon if they wish.

State Column

This reflects the overall state of the session. In most cases, this corresponds to the state of the process associated with the session. All debugger engines must support a "Running" state, which indicates that the process has been started and is currently executing instructions.

The state column should always have an icon to the left of the state value. The debugging architecture should provide standard icons for the running state. Each debugger engine should provide icons for any additional states they show.

Behavior

All sessions must respond to the following actions:

Debugger engines are encouraged to support these additional actions:

Contextual Menu

The contextual menu for a session should look like the following (where actions not supported by the debugger type should not be show):

Make Current
--------
Pause
Continue
--------
Restart
Detach
Kill
Finish
--------
List Options
--------
Properties

If multiple sessions are selected, the "Make Current" item must be unavailable (disabled). If multiple sessions are selected, then only the items which apply to all of them should be made available (e.g. if there are two sessions, and one is paused and one is running, and both are selected, then neither the pause nor continue item should be available).

Specific Debugging Engine Details

This section details some information about specific debugger types.

Java2 Debugger

Name Column

The name of the session is the non-qualified class name. A tooltip for this column should always show the fully qualified name. [tooltip doesn't show this in 3.4]

Additional States

Additional Columns

Additional Actions

[none of these are supported in 3.4]

The debugger may support the following actions: