# Eclipse 3.5 Debug Platform Build Notes

## Summary of API changes in 3.5

### Breakpoint Import Participants

The breakpoints framework has been further enhanced to support breakpoint import participants, which allows contributors to participate in the importing process for any given breakpoint type. Participants can contribute in the decision of whether a breakpoint should be imported and in the verification process once a breakpoint has been imported.

The API to support this feature includes:

- `org.eclipse.debug.breakpointImportParticipants` extension point - Allows a client to register their participant for a given breakpoint type.
- `IBreakpointImportParticipant` interface - Required implementing interface for all participants.
- `org.eclipse.debug.core.DebugPlugin#EXTENSION_POINT_BREAKPOINT_IMPORT_PARTICIPANTS` constant - Constant providing the id of the new extension point to clients.
- `org.eclipse.debug.core.IBreakpointManager#getImportParticipants(id)` - convenience method for getting all registered breakpoint participants for the given breakpoint type id. If there are no matching participants a default participant will be returned.

### Breakpoints

The breakpoints framework has been enhanced to support different breakpoint types to be created within the same part. This effectively allows different debuggers to share a common editor and views where breakpoints are created. Debuggers can also use this mechanism to let users quickly change what breakpoint type is created by default (e.g.: software, hardware, thread-filtered, etc.).

The API to support this feature includes:

- `org.eclipse.debug.ui.toggleBreakpointsTargetFactories` extension point - Allows a debugger to register a factory of `IToggleBreakpointsTarget` adapters, which are used by toggle breakpoint actions to create breakpoints.
- `IToggleBreakpointsTargetFactory` interface - Factory API for IToggleBreakpointTarget adapters to be implemented by debuggers.
- `RulerBreakpointTypesActionDelegate` action - Editor gutter action to select the active breakpoint types.

### ILaunchConfiguration.getLocation() can return null

What is affected: Clients that call ILaunchConfiguration.getLocation()

Description: In release 3.4 and earlier, ILaunchConfiguration.getLocation() was not specified to return `null`. Since 3.5, launch configuration infrastructure has been enhanced to support storage on external file systems (EFS). The #getLocation() method returns a location in the local file system - however, since an external file system may not map to a local location, `null` can now be returned.

Action required: Clients that call ILaunchConfiguration.getLocation() should update code to handle a `null` result. The #getLocation() method has been deprecated since the return value is no longer reliable.

### Access to current source lookup participant

What is affected: Method addition: AbstractSourceLookupDirector#getCurrentParticipant()

Description: Since 3.5, the AbstractSourceLookupDirector provides access to the ISourceLookupParticipant currently looking up source via the new method #getCurrentParticipant(). The implementation of AbstractSourceContainer has been enhanced to ask the current participant if duplicate source files should be found when looking up source. To maintain backwards compatibility, the participant delegates whether duplicates should be found to the source lookup director. A custom implementation of a source lookup participant could override the default behavior to control whether duplicate source files should be found.

Action required: This is a backwards compatible change. No action required.

### debugContext evaluation variable

What is affected:

- Evaluation service variable addition: `debugContext`
- Method addition: `DebugUITools.getDebugContextForEvent(EvalutationEvent)`
- Method addition: `DebugUITools.getDebugContextForEventChecked(EvalutationEvent)`
- Constant addition: `IDebugUIConstants.DEBUG_CONTEXT_SOURCE_NAME`

Description:The command framework allows menu and toolbar items to be controlled using powerful standard expressions. However many debugger related commands require access to the current debug context in order to properly evaluate their enabled or visible state. This addition allows command handlers and their expressions to use the `debugContext` variable to access the current debug context applicable to the given handler.

Action required: This is a backwards compatible change. No action required.

### Detail pane selection provider

What is affected:

- Interface addition: `IDetailPane2`
- Interface addition: `IDetailPaneContainer2`

Description:The original detail pane design does not allow a detail pane implementation to properly supply a selection provider for a view (see bug 254442). These addition allows a detail pane to overcome this limitation.

Action required:This is a backwards compatible change, so no action is required. However, detail pane implementations which need to drive the active view selection, should implement the new `IDetailPane2` interface.

### Variables views' preference constants

What is affected: Clients that use the variable font, detail pane font, and changed value background preferences. The new constants are:

- Constant addition: `IDebugUIConstants.PREF_CHANGED_VALUE_BACKGROUND`
- Constant addition: `IDebugUIConstants.PREF_VARIABLE_TEXT_FONT`
- Constant addition: `IDebugUIConstants.PREF_DETAIL_PANE_FONT`

Description: Some clients needed to access preference settings for display attributes in the variables view which were defined in an internal interface. This change moves these constants to the `IDebugUIConstants` interface.

Action required: Clients which may have copied these constants or (gasp!) have referenced the internal interface, should instead reference the new API constants.

## May 26, 2009

### Problem Reports Fixed

Bug 277869: NPE copying empty list of variables

## May 25, 2009

### Problem Reports Fixed

Bug 76481: [doc] In the doc for org.eclipse.debug.ui.AbstractLaunchConfigurationTab, setDirty is badly described

## May 20, 2009

### Problem Reports Fixed

Bug 276908: Mnemonic collision on debug preference page

## May 19, 2009

### Problem Reports Fixed

Bug 276377: [doc] Minor minor minor Javadoc bug: IRuntimeClasspathProvider
Bug 276948: [examples] org,eclipse.debug.examples.ui should use J2SE-1.4 compiler options
Bug 269182: [breakpoints] Breakpoint does not have an associated marker error in the .log file

## May 13, 2009

### Problem Reports Fixed

Bug 241394: [Console] Can not get input text properly in eclipse console panel

## May 12, 2009

### Problem Reports Fixed

Bug 275700: Internal errors when expanding thread groups.

## May 11, 2009

### Problem Reports Fixed

Bug 275614: REGRESSION: threads no longer expanded if Debug view not visible

## May 8, 2009

### Problem Reports Fixed

Bug 273929: NPE in ToggleBreakpointObjectActionDelegate

## May 5, 2009

### Problem Reports Fixed

Bug 273498: Launch history generation could be more robust
Bug 274358: Show Thread Group option not propery updated in debug view

## April 27, 2009

### Problem Reports Fixed

Bug 273082: BreakpointsView-Group By sub-menu contains extra mnemonics
Bug 220657: Teminate All in ConsoleView.
Bug 272489: Debug view: "View Mode" menu misses mnemonics
Bug 272367: "Show Type Names" attribute is not available in the IPresentationContext properties
Bug 273178: Repeated expressions in expressions window
Bug 273617: property tester expression doesn't check selected element's type

## April 20, 2009

### Problem Reports Fixed

Bug 268978: Build before launch should use one top level workspace runnable
Bug 233040: ConsoleTerminateAction performed in UI thread, occasionally lags
Bug 212798: Thread collapsed unexpectedly as threads are terminated

## April 7, 2009

### Problem Reports Fixed

Bug 271055: Risk of deleting a launch configuration multiple times
Bug 271113: !MESSAGE NLS unused message: BreakpointTypesContribution_noBreakpointsActive_menuItem
Bug 269961: [launching] Confusing "Discard Changes?" dialog when trying to filter with pending changes
Bug 233233: [launching] Default Launchers -- description does not update when click on the checkbox
Bug 267957: [launching] Prompted about text search when close is pressed

## March 24, 2009

### Problem Reports Fixed

Bug 236435: add 'do not ask again' option for 'remove all expressions'
Bug 270467: Enable to navigate to breakpoints
Bug 199288: Expressions view should support paste
Bug 269287: Content assist handler not disabled when the conditional breakpoint properties page is hidden

## March 17, 2009

### Problem Reports Fixed

Bug 262850: [launch modes] When a launch delegate is not selected, the "Multiple launchers available" label should have an error decorator.
Bug 268876: [launching] OK button disabled in Select Preferred Launcher dialog
Bug 102766: [launching] Shared launch configurations not displayed in favorites when importing/opening containing project
Bug 268130: Labels on 'JRE' launch tab does not use sentence style

## March 10, 2009

### Problem Reports Fixed

Bug 258891: [Memory View] AbstractAsyncTableRendering.removeListeners susceptible to an NPE
Bug 262705: [Memory View] CreateRendering "New Rendering..." tab is missing Enter key binding
Bug 262845: [breadcrumb] breadcrumb causes performance degradation in stepping
Bug 266162: Duplicates in prompt to save dirty resources before launching
Bug 262811: [breadcrumb] Provide hooks to setup debugging in other perspectives
Bug 266162: Duplicates in prompt to save dirty resources before launching
Bug 262849: [launching] Select Preferred Launcher dialog is somewhat confusing.
Bug 267438: IInernalDebugUIConstants.PREF_CHANGED_VALUE_BACKGROUND should be public.
Bug 262845: [breadcrumb] breadcrumb causes performance degradation in stepping
Bug 265376: [breadcrumb] Breadcrumb doesn't update layout after the view is resized.

## February 10, 2009

### Problem Reports Fixed

Bug 267251: [launching] Add a RefreshTab.getID() implementation.
Bug 262261: [breadcrumb] Add actions to Debug view to switch between tree view, breadcrumb, or automatic modes.
Bug 262262: [breadcrumb] Add actions to quickly switch between contexts in Debug view.
Bug 262870: [breadcrumb] When debug view is activated no item has focus.
Bug 262837: No more handle exception when working in Debug Perspective

## February 10, 2009

### Problem Reports Fixed

Bug 262844: [launching] Launch tab group with no tabs leads to NPEs
Bug 262848: [launching] If a tab is contributed and it does not have a placement specified, it should go in front.
Bug 263307: [launching] Preferred launch delegates preference should be more transparent
Bug 255722: IWorkspaceRoot.findContainersForLocation(IPath) is deprecated
Bug 208484: variables should be available for headless operation when possible
Bug 263881: SourceLookupFacility selects editor region when stack frame provides CharStart value > -1
Bug 262814: Class Cast exception when Expression view has expressions defined by non-Java debug session
Bug 221234: [console] Programs with lots of output cause major eclipse unresponsiveness with large console buffer

## 3.5 M5 - January 30, 2009

### Problem Reports Fixed

Bug 262369: NPE in viewer test
Bug 262819: 'process model delta' job appears in progress view/status bar
Bug 260802: Retargetable debug actions do not enable when an adapter is first loaded.
Bug 247990: [breakpoints] Breakpoint working set not updated properly after import
Bug 255644: chkpii error in N20081117-2000
Bug 256569: Possibly broken code in LaunchConfigurationTabGroupViewer.setSelection(ISelection, boolean)

## January 20, 2009

### Problem Reports Fixed

Bug 261567: [launching] ILaunchConfiguration's getLocation returns different values at different times
Bug 261214: Console view: Opening drop-down of console switcher button already switches consoles

## January 6, 2008

### Problem Reports Fixed

Bug 259839: Typo in TerminateAndRelaunchAction
Bug 259107: [console] Console Deadlock when too much information written
Bug 253955: Hitting breakpoint gives focus to workbench instead of dialog
Bug 245314: Populating variables view with logical structures is really slow
Bug 253257: Source lookup job data getting overwritten while running

## December 16, 2008

### Problem Reports Fixed

Bug 258235: Switch LaunchConfigurationFilteredTree to new look of FilteredTree
Bug 258058: Buttons not greyed out in Organize Favorites dialog
Bug 255153: Select All does not fire selection change event
Bug 49730: [source lookup] Call stack editor annotation ambiguous
Bug 254442: "Create Watch Expression" action does not appear consistently
Bug 257717: Errors in Workspace dialog on launch is contains incorrect text

## Milestone 4 - December 12, 2008

### Problem Reports Fixed

Bug 234854: synchronize remaining 3 public get*Manager() methods from DebugPlugin
Bug 136741: [Memory View] Base address not initially scrolled into view with built-in renderings
Bug 257546: Console view: Open Console button should open menu
Bug 257537: ConsolePlugin should consider modifying its getStandardDisplay() method
Bug 240330: [Memory View] Items per row should not be limited to 16
Bug 212605: [launching] Mac OS X launcher should not hide the necessary -XstartOnFirstThread
Bug 257970: SWT Exception shutting down Eclipse
Bug 236296: "update the classpath settings" feature sets wrong project compiler compliance level
Bug 244059: [breakpoints] Allow breakpoints to specify when they should be overwritten on import

## December 2, 2008

### Problem Reports Fixed

Bug 257103: modify execution environment tests to not break real environments
Bug 256181: [Flex-Hierarchy] State restore logic can get into a cycle.
Bug 255267: OSGi min 1.2 EE is not recognized as subset of J2SE 1.4 and Foundation 1.1

## November 11, 2008

### Problem Reports Fixed

Bug 253966: Support to configure resource based variables
Bug 252992: Move {workspace_loc} to debug.core plug-in

## November 4, 2008

### Problem Reports Fixed

Bug 252445: toggle breakpoint jobs should have a priority
Bug 252360: Can not place breakpoint in inner class of an annotation
Bug 252387: context launch offers to launch configs that have no associated project

## Milestone 3 - October 31, 2008

### Problem Reports Fixed

Bug 251711: Select All should not select invisible items
Bug 229219: Track debugContext with the window evaluation context.
Bug 247575: [flex-hierarchy] TreeModelLabelProvider should coalesce label updates
Bug 234908: [Expressions View] Expression view can show wrong data if selection is changed rapidly
Bug 250954: NPE in LaunchManager
Bug 252141: Compile warnings in official build
Bug 252609: Transient ConsoleLineTracker test failures
Bug 213074: "Run to line" action cannot be used with non-standard debug models.

## October 21, 2008

### Problem Reports Fixed

Bug 251265: Rollback changes to IOConsolePartition
Bug 250928: Debug serversocket nulled out
Bug 250048: DebugUIPlugin.start() pollutes SWT Display
Bug 250008: Keybinding conflicts occurred. CTRL+SHIFT+P, jface NullPointerException
Bug 248054: Can't set breakpoint annotation as Highlighted
Bug 182974: [breakpoints] Removing a breakpoint causes two independent resource deltas

## October 7, 2008

### Problem Reports Fixed

Bug 249364: NPE getting file store

## September 30, 2008

### Problem Reports Fixed

Bug 246278: NPE in DefaultDetailPane.java:264
Bug 248520: NPE selecting launch config
Bug 247977: ISourceLookupParticipant should be able to influence whether ISourceContainer returns multiple source elements

## September 22, 2008

### Problem Reports Fixed

Bug 236980: [launching] Support ILaunchConfigurations on EFS
Bug 244920: Two Breakpoints in one line. Saving of class not possible (NPE).

## Aug 26, 2008

### Problem Reports Fixed

Bug 244694: Conflicting mnemonics in breakpoints export wizard

## Aug 19, 2008

### Problem Reports Fixed

Bug 243053: Tabs added via launchConfigurationTabs cannot be placed after each other
Bug 111818: new launch config arguments field should let Ctrl+Enter engage dialog's default button
Bug 231790: NPE when opening Run Configuration Dialog on linux/gtk

## Aug 12, 2008

### Problem Reports Fixed

Bug 243606: [Debug View] Stackframe does not get focus with multiple debug targets

## Aug 5, 2008

### Problem Reports Fixed

Bug 242685: StringVariableManager - Variable contributions may silently override existing variables

## July 29, 2008

### Problem Reports Fixed

Bug 236049: [console] 'Clear' context menu item enable when no text is available to be cleared

## July 22, 2008

### Problem Reports Fixed

Bug 239856: Launches corrupted in I20080702-0939
Bug 233008: User consistent naming to create watch expressions
Bug 240985: NPE adding org.eclipse.ui.console.consolePageParticipants extension without enablement clause

## July 8, 2008

### Problem Reports Fixed

Bug 239512: MessageConsole hides IOConsole constructor taking consoleType
Bug 239446: org.eclipse.debug LaunchConfigurationsDialog fails to load when PlatformUI SHOW_FILTERED_TEXTS is false
Bug 239794: CommonTab source uses wrong launch group

## June 24, 2008

### Problem Reports Fixed

Bug 236076: [launching] Run and Debug History menus not updated after reorganize favorites