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:
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