InvalidExpressionException can be thrown as a result
of an application-level exception. We need to differentiate this case
from exceptions thrown from NetBeans code. A boolean argument in the
constructor and a method hasApplicationTarget() are
added to InvalidExpressionException for this purpose.

A new method createMethodOperation(), which takes
boolean isNative is added to EditorContext
class. The EditorContext.Operation has isNative()
method to retrieve that information. The implementation retrieves the
native flag from parser information, therefore there can occur native
methods at runtime, which are not marked as native by this flag.

Use Cases

CPP debugger plug-in installs support
for debugging of some new language to the NetBeans IDE, and some new
debugging engine. This implementation of debugger should share UI
components (actions, Debugger Views, ...) with default NB Java
Debugger. It should share basic debugger model too - notion of current
context, current session, thread, call stack line, ...

CPP debugger plug-in installs:

New set of breakpoint types - CPPLineBreakpointType,
CPPMethodBreakpointType...

This set of breakpoint types will have special cathegory in Add
Breakpoint Dialog called "CPP". Each breakpoint type will install a new
JPanel to Add Breakpoint Dialog.

ToggleBreakpointAction on CPP files will create / remove a
instance of CPPLineBreakpointType.

Install some watches evaluator for CPP language.

Some new View to Debugger Window

Use Termilnal Emulator in Output Window as command line interface
to CPP debugger plug-in.

JSP debugger plug-in installs support
for debugging of some new language to the NetBeans Java Debugger. It
does not contain a new debugger engine, but it delegates to standard NB
Java debugger. So it does not depends on Debugger Core API only, but it
depends on JavaDebugger API too.

JSP debugger plug-in installs:

New set of breakpoint types - JSPLineBreakpointType, ...

This set of breakpoint types will have special cathegory in Add
Breakpoint Dialog called "JSP". Each breakpoint type will install a new
JPanel to Add Breakpoint Dialog.

ToggleBreakpointAction on JSP files will create / remove a
instance of JSPLineBreakpointType.

JSPLineBreakpointType delegates all functionality to
JPDAClassBreakpoint and JPDALineBreakpoint

J2EE debugger plug-in installs some
enhancements to the standard Java Debugger. It
does not contain a new debugger engine or language support. So it does
not depends on Debugger Core API only, but it
depends on JavaDebugger API too.

UseCase IV. -
Install and use DBX debugger plug-in to NetBeans.

DBX debugger plug-in installs support
for debugging of some new language (CPP) to the NetBeans IDE, and some
new
debugging engine. But it contains debugger engine for Java debugging
too. DBX debugger engine has its own session management (or will have
in the next versions). One debugger engine can manage more than one
sessions. One engine supports debugging in more than one language.

Exported Interfaces

This table lists all of the module exported APIs
with
defined stability classifications. It is generated
based on answers to questions about the architecture
of the module. Read them all...

When set to Boolean.TRUE, this option is causing step out during smart-stepping
instead of step into. Thus it much faster skips code that is not selected
for debugging, but it may also skip code that should be debugged if it's
called from a source that has debugging disabled.
This is advantageous when the speed is important (e.g. in J2ME).
This property can be set through a map of properties that is passed to
JPDADebugger.attach (), like J2ME_DEBUGGER property.

When this system property is set, informational messages about the tasks
that refresh debugger views are printed into standard output (console).
The value of that property should contain 'w' for watches view, 'l' for
local variables view, 'c' for call stack view, 's' for classes view and
't' for threads view.