Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| org.netbeans.api.debugger/1 1.7.22
PREV NEXT | FRAMES NO FRAMES

# NetBeans Debugger Core API

List of APIs: DebuggerCoreAPIDebugger Core APIs DebuggerCoreSPIDebugger Core SPIs Meta-inf-debugger-org.netbeans.api.debugger.Properties-ReaderLoads all property readers from given folder. Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.SessionProviderLoads all session providers for specific DebuggerInfo. Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.DelegatingSessionProviderLoads all delegating session providers for specific DebuggerInfo. Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.DebuggerEngineProviderLoads all debugger engine providers for specific DebuggerInfo. Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.DelegatingDebuggerEngineProviderLoads all delegating debugger engine providers for specific DebuggerInfo. Meta-inf-debugger-Session-ID-org.netbeans.spi.debugger.DebuggerEngineProviderLoads all debugger engine providers for specific Session. Meta-inf-debugger-Session-ID-org.netbeans.spi.debugger.DelegatingDebuggerEngineProviderLoads all delegating debugger engine providers for specific Session. Meta-inf-debugger-org.netbeans.api.debugger.LazyDebuggerManagerListenerLoads all debbugger manager listeners and adds them to DebuggerManager.getDebuggerManager () instance. Meta-inf-debugger-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for DebuggerManager context. Meta-inf-debugger-DebuggerEngine-ID-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for DebuggerEngine (language) context. Meta-inf-debugger-Session-ID-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for Session context. Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for DebuggerInfo context. netbeans.debugger.registrationWrites registration log to console.

See:
Description

Debugger Core API
org.netbeans.api.debugger | The NetBeans Debugger Core API definition.
org.netbeans.spi.debugger | The NetBeans Debugger SPI definition defines interface to Debugger Plug-ins.

List of APIs:

- DebuggerCoreAPIDebugger Core APIs
- DebuggerCoreSPIDebugger Core SPIs
- Meta-inf-debugger-org.netbeans.api.debugger.Properties-ReaderLoads all property readers from given folder.
- Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.SessionProviderLoads all session providers for specific DebuggerInfo.
- Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.DelegatingSessionProviderLoads all delegating session providers for specific DebuggerInfo.
- Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.DebuggerEngineProviderLoads all debugger engine providers for specific DebuggerInfo.
- Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.DelegatingDebuggerEngineProviderLoads all delegating debugger engine providers for specific DebuggerInfo.
- Meta-inf-debugger-Session-ID-org.netbeans.spi.debugger.DebuggerEngineProviderLoads all debugger engine providers for specific Session.
- Meta-inf-debugger-Session-ID-org.netbeans.spi.debugger.DelegatingDebuggerEngineProviderLoads all delegating debugger engine providers for specific Session.
- Meta-inf-debugger-org.netbeans.api.debugger.LazyDebuggerManagerListenerLoads all debbugger manager listeners and adds them to DebuggerManager.getDebuggerManager () instance.
- Meta-inf-debugger-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for DebuggerManager context.
- Meta-inf-debugger-DebuggerEngine-ID-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for DebuggerEngine (language) context.
- Meta-inf-debugger-Session-ID-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for Session context.
- Meta-inf-debugger-DebuggerInfo-ID-org.netbeans.spi.debugger.ActionsProviderLoads all action providers for DebuggerInfo context.
- netbeans.debugger.registrationWrites registration log to console.

### What is New (see all changes)?

- Aug 24 '05 Debugger actions can be posted asynchronously.

  Added methods: `ActionsManager.postAction(Object)`, `ActionsProvider.postAction(Object, Runnable)`, These can be used to call and implement asynchronous actions.

- Nov 23 '04 final modifier removed from ActionsProviderSupport.isEnabled.

  Having final modifier for this method can be too obstructive in some cases. I had a problem writing tests.

- May 13 '04 Support for Breakpoints Group added.

  Breakpoint.getGroupName (), Breakpoint.setGroupName () methods were added. Breakpoint.PROP_GROUP_NAME has been added.

- May 9 '04 Support for ToggleBreakpointAction added, and some bugfix of Debugger Actions support API.

  `ActionsManager.doAction (...)`, `ActionsProvider.doAction (...)` and `ActionsManagerListener.actionPefrormed (...)` methods will not return boolean any longer. This parameter was unusefull and it was not posible to implement it in some meaningful way.

- May 3 '04 Support for synchronouous start of DebuggerEngines added.

  `void DebuggerManager.startDebugging (DebuggerInfo)` has been changed to `DebuggerEngine[] DebuggerManager.startDebugging (DebuggerInfo)`. So it returns array of all DebuggerEngines created for given DebuggerInfo.

### Use Cases

## UseCase I. - Install and use CPP debugger plug-in to NetBeans + Java Debugger.

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.
- Install / uninstall a columns to / from standard Debugger Window Views.
- Redefine Nodes used for representation of CPP threads, watches, variables, callstacks, sessions and breakpoints
  - Add / remove some properties
  - Add / remove some actions
  - change icons
  - change display names
- Register CPP Actions for:
  - Step Into, Over, Out, Continue, Pause, Start, Kill, Restart, Finish
- Some new CPP specific actions.

## UseCase II. - Install and use JSP debugger plug-in to NetBeans + Java Debugger.

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
- Some watches evaluator for JSP language expression. This evaluator delegates evaluation of Java expressions to standard JavaExpressionEvaluator.
- Redefine Nodes used for representation of JSP callstacks and breakpoints
  - Add / remove some properties
  - Add / remove some actions
  - change icons
  - change display names
- Register JSP Actions for:
  - Step Into, Over, Out
  - Implementation of this actions delegates to standard Java Step actions - it redefines Java stepping functionality.
- JSP debugger plug in adds support for new programming language (JSP) to already running Java Session.

## UseCase III. - Install and use J2EE debugger plug-in to NetBeans + Java Debugger.

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.
J2EE debugger plug-in installs:

- New set of breakpoint types
- Filter for Threads and Callstack Views. This filter should allow to:
  - Add / remove / modify nodes in this views.
- Redefine Stepping (Smart Stepping) behaviour of default Java Debugger.
- Some new View to Debugger Window

## 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.

## UseCase V. - Implement Debugger Core UI module on top of Debugger Core API / SPI.

Debugger Core UI needs:

- List all breakpoint types and all breakpoint cathegories.
- Visually customize all breakpoints - some panel.
- Add / remove breakpoints.
- Add / remove watches.
- Represent breakpoints, threads, thread groups, watches, sessions, call stack frames, locales, and fields as Nodes in NB Explorer View.
- List all threads, thread groups, locales, watches, breakpoints, callstack frames, and fields.
- Listen on changes of hierarchy of threads, thread groups, locales, watches, breakpoints, callstack frames, and fields.
- Some current context definition. Current contet should define current session, language, thread, and call stack line.

### 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...

##### Group of java interfaces

Interface Name | In/Out | Stability | Specified in What Document?
DebuggerCoreAPI | Exported | Official | ../org-netbeans-api-debugger

##### Group of lookup interfaces

Interface Name | In/Out | Stability | Specified in What Document?

##### Group of property interfaces

Interface Name | In/Out | Stability | Specified in What Document?

### Implementation Details

##### Where are the sources for the module?

The sources for the module are in NetBeans CVS in debuggercore/api directory.

##### What do other modules need to do to declare a dependency on this one?

OpenIDE-Module-Module-Dependencies: org.netbeans.api.debugger/1

Read more about the implementation in the answers to architecture questions.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| org.netbeans.api.debugger/1 1.7.22
PREV NEXT | FRAMES NO FRAMES

Built on December 7 2006. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.