Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Khouzam2010-03-11 19:19:38 +0000
committerMarc Khouzam2010-03-11 19:19:38 +0000
commit6b01652bf697413cce73acd6d634cde3ab3c7d02 (patch)
tree65abae24b889f0ebe648066c2b44a4e416107bc3 /debug/org.eclipse.cdt.debug.ui
parent438a83dada05ac581688ed2d3bc6667159fcbf23 (diff)
downloadorg.eclipse.cdt-6b01652bf697413cce73acd6d634cde3ab3c7d02.tar.gz
org.eclipse.cdt-6b01652bf697413cce73acd6d634cde3ab3c7d02.tar.xz
org.eclipse.cdt-6b01652bf697413cce73acd6d634cde3ab3c7d02.zip
[249223] Make ResumeWithoutSignal retargettable. Add ResumeWithoutSignal action to DSF-GDB, but this is not complete because DSF-GDB does not handle the signal stuff yet.
Diffstat (limited to 'debug/org.eclipse.cdt.debug.ui')
-rw-r--r--debug/org.eclipse.cdt.debug.ui/plugin.properties10
-rw-r--r--debug/org.eclipse.cdt.debug.ui/plugin.xml118
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ActionMessages.properties3
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RetargettableActionAdapterFactory.java10
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroWorkbenchActionDelegate.java71
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommand.java53
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommandHandler.java26
7 files changed, 179 insertions, 112 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index d788dd9dde7..2f0b4e2344a 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -84,8 +84,6 @@ LoadSymbolsForAllAction.tooltip=Load Symbols For All Modules
SignalAction.label=Resume With Signal
SignalAction.tooltip=Resume With Signal
-SignalZeroAction.label=Resume Without Signal
-SignalZeroAction.tooltip=Resume Ignoring Signal
SignalPropertiesAction.label=Signal Properties...
SignalPropertiesAction.tooltip=Open Signal Properties Dialog
@@ -200,6 +198,14 @@ CApplicationShortcut.label=Local C/C++ Application
ContextualRunCApplication.description=Runs a local C/C++ application
ContextualDebugCApplication.description=Debugs a local C/C++ application
+#Run Control commands
+RunControlCategory.name=Run Control Commands
+RunControlCategory.description=Set of commands for Run Control
+ResumeWithoutSignal.name=Resume Without Signal
+ResumeWithoutSignal.description=Resume Without Signal
+ResumeWithoutSignal.label=Resume Without Signal
+ResumeWithoutSignal.tooltip=Resume Ignoring Signal
+
# Reverse debugging
ReverseActionSet.label = Reverse Debugging
ReverseDebuggingCategory.name = Reverse Debugging Commands
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index 2557f83f32e..96e49400b1a 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -264,16 +264,6 @@
label="%GlobalMoveToLineAction.label"
menubarPath="org.eclipse.ui.run/stepGroup"/>
<action
- id="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroWorkbenchActionDelegate"
- class="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroWorkbenchActionDelegate"
- disabledIcon="icons/dlcl16/signal0_co.gif"
- icon="icons/elcl16/signal0_co.gif"
- helpContextId="resume_without_signal_action_context"
- label="%SignalZeroAction.label"
- menubarPath="org.eclipse.ui.run/stepGroup"
- tooltip="%SignalZeroAction.tooltip">
- </action>
- <action
id="org.eclipse.cdt.debug.ui.internal.actions.RestartActionDelegate"
class="org.eclipse.cdt.debug.internal.ui.actions.RestartActionDelegate"
disabledIcon="icons/dlcl16/restart.gif"
@@ -284,6 +274,39 @@
</action>
</actionSet>
</extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="menu:org.eclipse.ui.run?endof=stepGroup">
+ <command
+ commandId="org.eclipse.cdt.debug.ui.command.resumeWithoutSignal"
+ disabledIcon="icons/dlcl16/signal0_co.gif"
+ helpContextId="resume_without_signal_action_context"
+ icon="icons/elcl16/signal0_co.gif"
+ label="%ResumeWithoutSignal.label"
+ style="push"
+ tooltip="%ResumeWithoutSignal.tooltip">
+ <visibleWhen
+ checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.cdt.debug.ui.testIsDebugActionSetActive">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.debug.ui.DebugView?after=threadGroup">
+ <command
+ commandId="org.eclipse.cdt.debug.ui.command.resumeWithoutSignal"
+ disabledIcon="icons/dlcl16/signal0_co.gif"
+ helpContextId="resume_without_signal_action_context"
+ icon="icons/elcl16/signal0_co.gif"
+ label="%ResumeWithoutSignal.label"
+ style="push"
+ tooltip="%ResumeWithoutSignal.tooltip">
+ </command>
+ </menuContribution>
+ </extension>
<extension
point="org.eclipse.ui.menus">
@@ -392,27 +415,6 @@
</pluginState>
</enablement>
</action>
- <action
- helpContextId="signal_zero_action_context"
- enablesFor="1"
- label="%SignalZeroAction.label"
- tooltip="%SignalZeroAction.tooltip"
- icon="icons/elcl16/signal0_co.gif"
- class="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroWorkbenchActionDelegate"
- menubarPath="threadGroup"
- id="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroWorkbenchActionDelegate">
- <enablement>
- <and>
- <pluginState
- id="org.eclipse.cdt.debug.ui"
- value="activated">
- </pluginState>
- <objectClass
- name="org.eclipse.cdt.debug.core.model.IResumeWithoutSignal">
- </objectClass>
- </and>
- </enablement>
- </action>
</viewerContribution>
<viewerContribution
targetID="#CEditorRulerContext"
@@ -607,10 +609,6 @@
</action>
</objectContribution>
<objectContribution
- objectClass="org.eclipse.cdt.debug.core.model.IResumeWithoutSignal"
- id="org.eclipse.cdt.debug.ui.DebugTargetActions">
- </objectContribution>
- <objectContribution
objectClass="org.eclipse.cdt.debug.core.model.ICastToType"
id="org.eclipse.cdt.debug.ui.VariableActions">
<action
@@ -1571,6 +1569,27 @@
type="org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory">
</adapter>
</factory>
+ <factory
+ adaptableType="org.eclipse.cdt.debug.core.model.ICStackFrame"
+ class="org.eclipse.cdt.debug.internal.ui.actions.RetargettableActionAdapterFactory">
+ <adapter
+ type="org.eclipse.cdt.debug.core.model.IResumeWithoutSignalHandler">
+ </adapter>
+ </factory>
+ <factory
+ adaptableType="org.eclipse.cdt.debug.core.model.ICThread"
+ class="org.eclipse.cdt.debug.internal.ui.actions.RetargettableActionAdapterFactory">
+ <adapter
+ type="org.eclipse.cdt.debug.core.model.IResumeWithoutSignalHandler">
+ </adapter>
+ </factory>
+ <factory
+ adaptableType="org.eclipse.cdt.debug.core.model.ICDebugTarget"
+ class="org.eclipse.cdt.debug.internal.ui.actions.RetargettableActionAdapterFactory">
+ <adapter
+ type="org.eclipse.cdt.debug.core.model.IResumeWithoutSignalHandler">
+ </adapter>
+ </factory>
</extension>
<extension
point="org.eclipse.ui.themes">
@@ -2038,6 +2057,18 @@
id="org.eclipse.cdt.debug.ui.command.saveTraceData"
name="%SaveTraceData.name">
</command>
+ <category
+ description="%RunControlCategory.description"
+ id="org.eclipse.cdt.debug.ui.category.runControl"
+ name="%RunControlCategory.name">
+ </category>
+ <command
+ categoryId="org.eclipse.cdt.debug.ui.category.runControl"
+ description="%ResumeWithoutSignal.description"
+ helpContextId="resume_without_signal_action_context"
+ id="org.eclipse.cdt.debug.ui.command.resumeWithoutSignal"
+ name="%ResumeWithoutSignal.name">
+ </command>
</extension>
<extension
point="org.eclipse.ui.handlers">
@@ -2073,6 +2104,11 @@
class="org.eclipse.cdt.debug.internal.ui.commands.SaveTraceDataCommandHandler"
commandId="org.eclipse.cdt.debug.ui.command.saveTraceData">
</handler>
+ <handler
+ class="org.eclipse.cdt.debug.internal.ui.commands.ResumeWithoutSignalCommandHandler"
+ commandId="org.eclipse.cdt.debug.ui.command.resumeWithoutSignal"
+ helpContextId="resume_without_signal_action_context">
+ </handler>
</extension>
<extension
point="org.eclipse.core.expressions.definitions">
@@ -2118,6 +2154,18 @@
</iterate>
</with>
</definition>
+ <definition
+ id="org.eclipse.cdt.debug.ui.testIsDebugActionSetActive">
+ <with
+ variable="activeContexts">
+ <iterate
+ operator="or">
+ <equals
+ value="org.eclipse.cdt.debug.ui.debugActionSet">
+ </equals>
+ </iterate>
+ </with>
+ </definition>
</extension>
<extension
point="org.eclipse.ui.bindings">
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ActionMessages.properties b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ActionMessages.properties
index a2cdc289966..853a40bc1ca 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ActionMessages.properties
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/ActionMessages.properties
@@ -20,9 +20,6 @@ LoadSymbolsForAllActionDelegate.Error_1=Error
LoadSymbolsForAllActionDelegate.0=Operation failed.
LoadModuleSymbolsActionDelegate.0=Unable to load symbols.
LoadSymbolsForAllAction.Unable_to_load_symbols_1=Unable to load symbols.
-SignalZeroWorkbenchActionDelegate.0=Exceptions occurred attempting to resume without signal.
-SignalZeroWorkbenchActionDelegate.1=Resume without signal failed.
-SignalZeroWorkbenchActionDelegate.2=Resume Without Signal
SignalZeroObjectActionDelegate.0=Unable to resume ignoring the signal.
SignalZeroObjectActionDelegate.1=Operation failed.
RunToLineActionDelegate.Error_1=Error
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RetargettableActionAdapterFactory.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RetargettableActionAdapterFactory.java
index ba6763faa85..c2f1a207d79 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RetargettableActionAdapterFactory.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/RetargettableActionAdapterFactory.java
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.eclipse.cdt.debug.internal.ui.actions;
+import org.eclipse.cdt.debug.core.model.IResumeWithoutSignalHandler;
+import org.eclipse.cdt.debug.internal.ui.commands.ResumeWithoutSignalCommand;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.debug.ui.actions.IRunToLineTarget;
@@ -32,6 +34,9 @@ public class RetargettableActionAdapterFactory implements IAdapterFactory {
}
if ( adapterType == IMoveToLineTarget.class ) {
return new MoveToLineAdapter();
+ }
+ if ( adapterType == IResumeWithoutSignalHandler.class ) {
+ return new ResumeWithoutSignalCommand();
}
return null;
}
@@ -40,6 +45,9 @@ public class RetargettableActionAdapterFactory implements IAdapterFactory {
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
*/
public Class[] getAdapterList() {
- return new Class[]{ IRunToLineTarget.class, IResumeAtLineTarget.class, IMoveToLineTarget.class };
+ return new Class[]{ IRunToLineTarget.class,
+ IResumeAtLineTarget.class,
+ IMoveToLineTarget.class,
+ IResumeWithoutSignalHandler.class };
}
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroWorkbenchActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroWorkbenchActionDelegate.java
deleted file mode 100644
index e532bade2df..00000000000
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroWorkbenchActionDelegate.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.debug.internal.ui.actions;
-
-import org.eclipse.cdt.debug.core.model.IResumeWithoutSignal;
-import org.eclipse.debug.core.DebugException;
-
-/**
- * The workbench delegate of the "Resume Without Signal" action.
- */
-public class SignalZeroWorkbenchActionDelegate extends AbstractListenerActionDelegate {
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractDebugActionDelegate#doAction(java.lang.Object)
- */
- protected void doAction( Object element ) throws DebugException {
- if ( element instanceof IResumeWithoutSignal ) {
- ((IResumeWithoutSignal)element).resumeWithoutSignal();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractDebugActionDelegate#isEnabledFor(java.lang.Object)
- */
- protected boolean isEnabledFor( Object element ) {
- if ( element instanceof IResumeWithoutSignal ) {
- return ((IResumeWithoutSignal)element).canResumeWithoutSignal();
- }
- return false;
- }
-
- /**
- * @see AbstractDebugActionDelegate#getStatusMessage()
- */
- protected String getStatusMessage() {
- return ActionMessages.getString( "SignalZeroWorkbenchActionDelegate.0" ); //$NON-NLS-1$
- }
-
- /**
- * @see AbstractDebugActionDelegate#getErrorDialogMessage()
- */
- protected String getErrorDialogMessage() {
- return ActionMessages.getString( "SignalZeroWorkbenchActionDelegate.1" ); //$NON-NLS-1$
- }
-
- /**
- * @see AbstractDebugActionDelegate#getErrorDialogTitle()
- */
- protected String getErrorDialogTitle() {
- return ActionMessages.getString( "SignalZeroWorkbenchActionDelegate.2" ); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractDebugActionDelegate#isRunInBackground()
- */
- protected boolean isRunInBackground() {
- return true;
- }
-}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommand.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommand.java
new file mode 100644
index 00000000000..e577d973621
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommand.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ericsson - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.debug.internal.ui.commands;
+
+import org.eclipse.cdt.debug.core.model.IResumeWithoutSignal;
+import org.eclipse.cdt.debug.core.model.IResumeWithoutSignalHandler;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.IRequest;
+import org.eclipse.debug.core.commands.AbstractDebugCommand;
+import org.eclipse.debug.core.commands.IEnabledStateRequest;
+
+/**
+ * The handler for the "Resume Without Signal" command.
+ *
+ * @since 7.0
+ */
+public class ResumeWithoutSignalCommand extends AbstractDebugCommand implements IResumeWithoutSignalHandler {
+
+ @Override
+ protected void doExecute(Object[] targets, IProgressMonitor monitor, IRequest request) throws CoreException {
+ if (targets.length != 1) {
+ return;
+ }
+
+ IResumeWithoutSignal target = (IResumeWithoutSignal)targets[0];
+ target.resumeWithoutSignal();
+ }
+
+ @Override
+ protected boolean isExecutable(Object[] targets, IProgressMonitor monitor, IEnabledStateRequest request) throws CoreException {
+ if (targets.length != 1) {
+ return false;
+ }
+
+ IResumeWithoutSignal target = (IResumeWithoutSignal)targets[0];
+ return target.canResumeWithoutSignal();
+ }
+
+ @Override
+ protected Object getTarget(Object element) {
+ return DebugPlugin.getAdapter(element, IResumeWithoutSignal.class);
+ }
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommandHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommandHandler.java
new file mode 100644
index 00000000000..9e6e764015b
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ResumeWithoutSignalCommandHandler.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ericsson - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.debug.internal.ui.commands;
+
+import org.eclipse.cdt.debug.core.model.IResumeWithoutSignalHandler;
+import org.eclipse.debug.ui.actions.DebugCommandHandler;
+
+/**
+ * Command handler to trigger a resume without signal operation
+ *
+ * @since 7.0
+ */
+public class ResumeWithoutSignalCommandHandler extends DebugCommandHandler {
+ @Override
+ protected Class<?> getCommandType() {
+ return IResumeWithoutSignalHandler.class;
+ }
+} \ No newline at end of file

Back to the top