Community
Participate
Working Groups
Build Identifier: 3.6.0 I20100608-0911 with latest CDT from cdt_7_0 branch This is a CDI-DSF parity bug. When debugging using DSF, it is not possible to set up filtering by thread. The relevant part of the Breakpoint properties dialog is not populated and an error message box is presented: "The currently displayed page contains invalid values." It is not clear to me whether this is a DSF core issue or a DSF-GDB issue. Reproducible: Always Steps to Reproduce: 1. Launch a multi-threaded "C/C++ Application" debugging session using the "GDB (DSF) Remote System Process" Launcher (and possibly other DSF launchers) 2. Create a breakpoint. 3. Right-click on the breakpoint in the Breakpoints View and select the "Breakpoint Properties..." context menu item. 4. Click on the "Filtering" item in the "Breakpoint Properties" dialog and observe the following: a) Error message box: "The currently displayed page contains invalid values." b) Nothing presented in the "Filtering page"
Do you have the same problem with HEAD? I wasn't able to reproduce it, even with 7_0
Marc It seems that breakpoint state can get confused, leading to the reported error. The state then remains confused across multiple launches and until Eclipse is re-started. I have not yet tracked down the precise sequence which triggers this issue but I can hit it fairly quickly when I start filtering breakpoints by thread. There is an error reported when manipulating the filter list while the application under debug is running which may or may not be related to this issue: !ENTRY org.eclipse.cdt.dsf 4 10004 2010-08-23 10:33:25.831 !MESSAGE Invalid breakpoint parameter(s) !SUBENTRY 1 org.eclipse.cdt.dsf.gdb 4 10004 2010-08-23 10:33:25.832 !MESSAGE Invalid breakpoint parameter(s) When the issue has been triggered, I get an NPE when I attempt to manipulate the breakpoint properties (cdt_7_0 branch): !ENTRY org.eclipse.jface 4 2 2010-08-23 10:34:41.738 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface". !STACK 0 java.lang.NullPointerException at java.util.Arrays$ArrayList.<init>(Arrays.java:3357) at java.util.Arrays.asList(Arrays.java:3343) at org.eclipse.cdt.dsf.gdb.internal.ui.breakpoints.GdbThreadFilterEditor$ThreadFilterContentProvider.getChildren(GdbThreadFilterEditor.java:154) at org.eclipse.cdt.dsf.gdb.internal.ui.breakpoints.GdbThreadFilterEditor$ThreadFilterContentProvider.getElements(GdbThreadFilterEditor.java:192) at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:989) at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:703) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1332) at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:391) at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:896) at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:601) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:801) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:778) at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:749) at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1492) at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833) at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1476) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1422) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1383) at org.eclipse.jface.viewers.CheckboxTreeViewer.preservingSelection(CheckboxTreeViewer.java:416) at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1469) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274) at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1664) at org.eclipse.cdt.dsf.gdb.internal.ui.breakpoints.GdbThreadFilterEditor.createThreadViewer(GdbThreadFilterEditor.java:270) at org.eclipse.cdt.dsf.gdb.internal.ui.breakpoints.GdbThreadFilterEditor.<init>(GdbThreadFilterEditor.java:250) at org.eclipse.cdt.dsf.gdb.internal.ui.breakpoints.CBreakpointGdbThreadFilterPage.createThreadFilterEditor(CBreakpointGdbThreadFilterPage.java:62) at org.eclipse.cdt.dsf.gdb.internal.ui.breakpoints.CBreakpointGdbThreadFilterPage.createContents(CBreakpointGdbThreadFilterPage.java:38) at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:232) at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1501) at org.eclipse.jface.preference.PreferenceDialog$14.run(PreferenceDialog.java:1258) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1252) at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:673) at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:708) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:704) at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:867) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:865) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1700) at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1139) at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem(PreferenceDialog.java:1054) at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.selectSavedItem(FilteredPreferenceDialog.java:728) at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:375) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.preference.PreferenceDialog.createContents(PreferenceDialog.java:371) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089) at org.eclipse.ui.internal.dialogs.PropertyDialog.createDialogOn(PropertyDialog.java:82) at org.eclipse.ui.dialogs.PropertyDialogAction.createDialog(PropertyDialogAction.java:176) at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:155) at org.eclipse.cdt.debug.internal.ui.actions.CBreakpointPropertiesHandler.execute(CBreakpointPropertiesHandler.java:70) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3552) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3171) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383) With that I now know, I am not surprised that you cannot reproduce the reported issue immediately. I will keep looking for a reliable recipe to trigger the problem, but perhaps the stack trace will offer some clues. I have not yet reproduced this with sources from the CDT HEAD, but this may be because the projects in my run-time workspace for HEAD are trivial.