Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "CDT/Archive/Debug/Catchpoints support"

< CDT‎ | Archive
m (Overview)
m (Workflow & UI)
Line 16: Line 16:
 
** Select catchpoint in breakpoints view, right click -> Show breakpoint properties
 
** Select catchpoint in breakpoints view, right click -> Show breakpoint properties
 
** Catchpoint properties contain common page, conditions and triggered actions.
 
** Catchpoint properties contain common page, conditions and triggered actions.
** Common has all that regular breakpoints have except file/line stuff, and in addition it has event type and extra control for event argument (viewing or editing).
+
** Common tab is similar to regular breakpoint except file/line stuff, and in addition it has event type and extra control for event argument (viewing or editing).
  
 
== Catchpoint contributions ==
 
== Catchpoint contributions ==

Revision as of 16:14, 9 April 2008

Overview

This document describe design ideas of adding catchpoints support to CDT. Catchpoints is special breakpoints which is similar to event handlers in eclipse, they don't attach to resource like regular breakpoints; but instead they attach to debugger events. Event can be for example "catch exception" or something like "load library event".

Please leave your comments here: Talk:CDT:_Debug:_Catchpoints_support

Workflow & UI

  • Adding catchpoint
    • From breakpoints view, right click Add catchpoint... Dialog opens. Dialog contains type of event to catch and maybe additional argument field.
    • From console, triggers adding breakpoints by backend
  • Removing catchpoint
    • Removing catchpoint from breakpoints view, select breakpoint, right click -> Delete
    • From console, triggers deleting breakpoint by backend
  • Viewing/Editing
    • Select catchpoint in breakpoints view, right click -> Show breakpoint properties
    • Catchpoint properties contain common page, conditions and triggered actions.
    • Common tab is similar to regular breakpoint except file/line stuff, and in addition it has event type and extra control for event argument (viewing or editing).

Catchpoint contributions

  • Main Catchpoints attributes would consist of Catchpoint type (event type - String) and Extra argument (Object)
  • Plugin can contribute via extension points of programmatically:
    • new catchpoint type, and whether it will use extra argument or not. Label for this catchpoint type and Label for the argument.
    • for advanced editing of argument(s) plugin can contribute class that implements Control (To view/edit extra argument) and implement some interface to get/set extra argument

Implementation

  • CBreakpoint already provides extensibility mechanism that can be used for catchpoint contributions (BreakpointExtention)?
  • To represent event type there is two options: use marker type or use marker attribute. I will go with attribute for now.

UI

  • Add extension point that allow to contribute event type and its editors, example
    <extension
        point="org.eclipse.cdt.debug.ui.catchpoints">
        <catchpointPresentation
            eventTypeId="org.eclipse.cdt.debug.gdb.catch"
            eventTypeLabel="Exception Caught"
            hasArgument="true"
            argumentLabel="Exception Name"
            controlClass="org.eclipse.cdt.debug.ui.utils.CTypeAssistLookup"
        />
    </extension>

Public API

  • Add interface org.eclipse.cdt.debug.core.model.ICCatchpoint extends ICBreakpoint
    • In there define strings for 2 addition marker attributes: event type id and event argument
    • Define 2 getter methods for these attribute
  • Add interface org.eclipse.cdt.debug.core.cdi.model.ICDICatchpoint extends ICDIBreakpoint

Other changes

  • Add class org.eclipse.cdt.debug.internal.core.breakpoints.CCatchpoint extends CBreakpoint implements ICCatchpoint
  • Add org.eclipse.debug.core.breakpoints extension for breakpoint markers
  • Add createCatchpoint method in CDTDebugModel
  • Support in CBreakpointManager handleBreakpontCreatedEvent

...

Back to the top