How to take advantage of the new Eclipse Debug Platform features CDI Debug Model How to take advantage of the new Eclipse Debug Platform features Mikhail Khodjaiants
What we have now UI Adapter’s Layer CDT Extension Platform Debug Model CDI Model
Flexible Hierarchy Flexible element hierarchy: support the presentation of different debug architectures in all views provided by the debug platform. Current implementation: Session (Launch) Target 1 Thread 1 Stack Frame 1 Target 2
Extensibility Allow clients to add new features by extending the CDI layer The CDI objects are not accessible from the UI layer
Solution UI Adapter’s Layer CDT Extension Platform Debug Model CDI Model
Changes In the CDT Debug Framework Implement adapters to support existing implementation In the existing implementations Each CDI object extends PlarformObject API changes to support flexible hierarchy Use the “functional” interfaces instead of of the “object” interfaces Examples: ICDIThreadGroup and ICDIStack Define asynchronous adapter interfaces for the CDT actions and implement default adapters
Examples public interface ICDITarget extends ICDIThreadGroup … public interface ICDIThreadGroup extends … ICDIObject { ICDIThread[] getThreads() throws CDIException; ICDIThread getCurrentThread() throws CDIException; }
Examples public interface ICDIThread … { … ICDIStackFrame[] getStackFrames() throws CDIException; ICDIStackFrame[] getStackFrames(int fromIndex, int length) throws CDIException; int getStackFrameCount() throws CDIException; } public interface ICDIThread extends ICDIStack … public interface ICDIStack {
Extensibility New UI Comp. UI New Adapters Adapter’s Layer CDI Extension CDI Model