FeaturesPluginsDocs & SupportCommunityPartners

NB4.0 Debugger - Implementation Plan

Content:

I. List of features

1) Design Debugger Core APIs
2) Design Java Debugger APIs
3) Performance
4) JDK1.5 support
5) Other features

II. Dependencies

1) JSP Debugger
2) J2EE Debugger
3) Native Debugger

III Implementation Plan

Milestone I. - Basic Debugger Core API ready for integration (oriented on JSP debugger mainly) - DONE
Milestone II. - Debugger Core API ready for initial rewiew - DONE
Milestone III. - Promotion B, Debugger Core API Feature Freeze, Java Debugger ready for use (not full featured), Full integration with new Window System - DONE
Milestone IV. - Most debugger UI & implementation rewritten to new API, Smart Stepping done, API in high resistence mode.- DONE
Milestone V. - Intergation with new Project system done, Full JSR 45 support, Multi client debugging done, Watches & Variables rewritten to new API, Ready 4merge2trunk - DONE.
Milestone VI. - Final review of Debugger Core & Java Debugger API, merge2trunk done - DONE!
Milestone VII. - All regressions fixed, JDK 1.5 support in progress.
Milestone VIII. - JDK 1.5 support done, all remaining API issues fixed.
Milestone IX. - Performance tuning done, api tests written documentation done.


I. List of features

1) Design Debugger Core APIs

New Debugger Core APIs are designed based on requirements from:

  • DBX team

  • S1S EE team

  • Web team

List of Debugger Core API Requirements.

Open issues.
All issues.

Duration: 110 developer days to finish = 5.5dmonth
Current state: 15 / 24

2) Design Java Debugger APIs

New Debugger Core APIs are designed based on requirements from:

  • Web team

  • S1S EE team

Open issues.
All issues.

Duration: 14 developer days to finish
Current state: 2 issues open from 2

3) Performance

Open issues.
All issues.

Duration: 21 developer days to finish
Current state: 4 issues open from 7

4) JDK1.5 support

Open issues.
All issues.

Duration: 55 developer days to finish
Current state: 4 issues open from 4

5) Other features

Open issues.
All issues.

Duration: 105 developer days to finish
Current state: 15 issues open from 29

6) Summary

List of All Open issues.
List of All issues.
Current state: 43 issues open from 70


II. Dependencies

1) JSP debugger:

Basic description: Adds support for debugging of new language (JSP) to Java Debugger. Adds new types of breakpoints.

For milestone 1 - 03/10/26 (to be able to start development of JSP debugger):

  • 26766: Add support for multi-language debugging

  • 36581: Allow access to JSR45 related functionality

  • 36585: "DelegatingDebuggerEngine"

  • 36588: Rewrite all breakpoints to new API

For final version:

  • 32914: Replace Breakpoint.Type.isDefault by some BreakpointCookie

  • 27194: Create official Debugger Core API (List of Debugger Core API Requirements)

  • 26767: Add support for JSR45 to debugger

  • 34337: Add support / UI for filterring of callstacks

  • 32796: Show a different glyph for valid breakpoints (Java Debugger feature only)

2) J2EE Debugger

Basic description: Adds support for debugging of J2EE components (EJBs). Adds new types of breakpoints. Hides generated classes & methods - call stack filterring, threads filterring, smart stepping.

Major dependencies:

3) Native debugger

Basic description: Adds support for debugging of C to NetBeans debugger.

Major dependencies:


III. Implementation plan

For promotion B we plan to deliver:

For promotion D we plan to deliver:

  • Java Debugger API: support for JSPand J2EE debugger

  • Full JSR45 support:

  • Full featured Java debugger: based on new Debugger Core APIs and Java Debugger APIs, all implementation and UI of Java Debugger must be rewritten to new APIs

  • Threads & CallStack filterring: support for filterring of code generated by server / precompiler (EJB)

  • Smart Stepping: support for filterring of code generated by server / precompiler (EJB)

  • Full JDK 1.5 support: generics, enumy, static imports, autoboxing / unboxing, varialble number of arguments



Milestone I.

Date: 10/26/2003 DONE!

Description: basic Debugger Core API ready for integration (oriented on JSP debugger mainly)

Details:

Debugger Core API:

ready: DebuggerManager, DebuggerEngine, Session, DebuggerInfo, Breakpoint, Watch, listeners, BreakpointsProvider, SessionProvider, WatchesProvider, BreakpointType, ActionImpl

not ready: threads, call stacks, all filterring stuff, variables

Java Debugger API:

ready: Java Line Breakpoint, Java Class Breakpoint (without UI), access to JSR45 methods

not ready: Full JSR 45 support, Smart Stepping, Add suspend all / suspend current thread policy to breakpoints (Multi client debugging)

Features:

ready: ToggleBreakpoint Action, Add Watch Action, Start debugging, Finish debugging, Step actions, Breakpoints View (Line Breakpoints only), Sessions View, Watches View, Pause & Continue Actions

not ready: Add Breakpoint Dialog, Attach to VM dialog, Run to cursor, Smart Stepping, Fix & Continue, Debugger Console, Debugger Output, Class View, Stack Actions, Threads View, CallStack View, Locals View, Threads & CallStack Filterring, Rewrite UI to Looks, Rewrite Threads&CallStacks to new API, Rewrite Watches&Variables to new API


Plan for next milestone
: stabilization of Debugger Core API, Threads View, CallStack View, Locals View



Milestone II.

Date: 12/01/2003 DONE!

Description: Debugger Core API ready for rewiew

Details:

Debugger Core API: (stable except filterring)

ready: DebuggerManager, DebuggerEngine, Session, DebuggerInfo, Breakpoint, Watch, listeners, BreakpointsProvider, SessionProvider, WatchesProvider, BreakpointType, ActionImpl, variables, threads, call stacks

not ready: all filterring stuff

Java Debugger API: (no change)

ready: Java Line Breakpoint, Java Class Breakpoint (without UI), access to JSR45 methods

not ready: Full JSR 45 support, Smart Stepping, Add suspend all / suspend current thread policy to breakpoints (Multi client debugging)

UI features:

ready: ToggleBreakpoint Action, Add Watch Action, Start debugging, Finish debugging, Step actions, Breakpoints View (Line Breakpoints only), Sessions View, Watches View, Pause & Continue Actions, Threads View, CallStack View, Locals View

not ready: Add Breakpoint Dialog, Attach to VM dialog, Run to cursor, Smart Stepping, Fix & Continue & Stack Actions, Debugger Console & Output, Class View, Threads & CallStack Filterring, Rewrite UI to Looks, Rewrite Threads&CallStacks to new API, Rewrite Watches&Variables to new API


Plan for next milestone
: fix API issues, Add Breakpoint Dialog



Milestone III.

Date: 01/01/2004 DONE!

Description:
Promotion B, Debugger Core API Feature Freeze, Debugger Core API to high resistence mode, Java Debugger ready for use (not full featured), Full integration with new Window System.

Details:

Debugger Core API: (Debugger Core API Feature Freeze, Debugger Core API to high resistence mode)

ready: DebuggerManager, DebuggerEngine, Session, DebuggerInfo, Breakpoint, Watch, listeners, BreakpointsProvider, SessionProvider, WatchesProvider, BreakpointType, ActionImpl, variables, threads, call stacks

not ready: all filterring stuff

Java Debugger API: (no change)

ready: Java Line Breakpoint, Java Class Breakpoint (without UI), access to JSR45 methods

not ready: Smart Stepping, Add suspend all / suspend current thread policy to breakpoints (Multi client debugging)

UI features:

ready: ToggleBreakpoint Action, Add Watch Action, Start debugging, Finish debugging, Step actions, Breakpoints View (Line Breakpoints only), Sessions View, Watches View, Pause & Continue Actions, Threads View, CallStack View, Locals View, Add Breakpoint Dialog

not ready: Attach to VM dialog, Run to cursor, Smart Stepping, Fix & Continue & Stack Actions, Debugger Console & Output, Class View, Threads & CallStack Filterring, Rewrite UI to Looks, Rewrite Threads&CallStacks to new API, Rewrite Watches&Variables to new API, Full JSR 45 support


Plan for next milestone
: bugfixing, Smart Stepping



Milestone IV.

Date: 02/01/2004 DONE!

Description: Most debugger UI & implementation rewritten to new API, Smart Stepping done, API in high resistence mode.

Details:

Debugger Core API:

ready: most of api done and ready for review, JavaDoc done

not ready: Breakpoint is not final, remove Breakpoint.Action?, remove duplicite listeners?, documentation, tests

Java Debugger API:

ready: most of api done (JPDA breakpoints, threads, variables, JPDADebugger), Smart Stepping

not ready: Multi client debugging (Add suspend all / suspend current thread policy to breakpoints, and stepping), documentation, tests

UI features:

ready: ToggleBreakpoint Action, Add Watch Action, Start debugging, Finish debugging, Step actions, Breakpoints View, Sessions View, Watches View, Pause & Continue Actions, Threads View, CallStack View, Locals View, Add Breakpoint Dialog, Attach to VM dialog, Debugger Console & Output, Rewrite Threads & CallStacks to new API, Smart Stepping

not ready: Full JSR 45 support (switching of languages), Run to cursor, Fix & Continue & Stack Actions, Class View, Rewrite Watches&Variables to new API


Milestone V.

Date: 03/01/2004 DONE!

Description:
Intergation with new Project system done, Full JSR 45 support, Multi client debugging done, Watches & Variables rewritten to new API, Ready 4merge2trunk, Ready for Final review

Details
:

Debugger Core API:

ready: api done, stable and ready for review

not ready: documentation, tests

Java Debugger API:

ready: api done, stable and ready for review

not ready: documentation, tests

UI features:

ready: ToggleBreakpoint Action, Add Watch Action, Start debugging, Finish debugging, Step actions, Breakpoints View, Sessions View, Watches View, Pause & Continue Actions, Threads View, CallStack View, Locals View, Add Breakpoint Dialog, Attach to VM dialog, Debugger Console & Output, Rewrite Threads&CallStacks to new API, Smart Stepping, Full JSR 45 support (switching of languages), Rewrite Watches&Variables to new API, Fix & Continue & Stack Actions

not ready: Run to cursor, Class View



Milestone VI.

Date: 04/01/2004 DONE!

Description:
Final review of Debugger Core & Java Debugger API done, merge2trunk done

Details
:

Debugger Core API:

ready: api done, stable and ready for review

Java Debugger API:

ready: api done, stable and ready for review

UI features:

ready:ToggleBreakpoint Action, Add Watch Action, Start debugging, Finish debugging, Step actions, Breakpoints View, Sessions View, Watches View, Pause & Continue Actions, Threads View, CallStack View, Locals View, Add Breakpoint Dialog, Attach to VM dialog, Debugger Console & Output, Rewrite Threads&CallStacks to new API, Smart Stepping, Full JSR 45 support (switching of languages), Rewrite Watches&Variables to new API, Fix & Continue & Stack Actions, Run to cursor, Class View



Milestone VII.

Date: 04/19/2004

Description: All regressions fixed (Hanz). JDK 1.5 support in progress (Maros).

Open issues:

  • Classes View dissapeared!
  • Create Fixed Watch action disappeared!
  • Breakpoints & Watches are not persistent!
  • Run to Cursor does not work
  • JPDAConnect and JPDAReload ant tasks are commented out.
  • Run To Cursor & Step Into Actions should start debugging


Milestone VIII.

Date: 05/05/2004

Description: JDK 1.5 support done (Maros). All remaining API issues fixed (Hanz).


Milestone IX.

Date: 05/15/2004

Description: Performance tuning done, api tests written, documentation done.




Last revision: 01/30/2003

Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by