diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/breakpointactions/IReverseDebugEnabler.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/breakpointactions/IReverseDebugEnabler.java
new file mode 100644
index 00000000000..0388be9291b
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/breakpointactions/IReverseDebugEnabler.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2012 Nokia 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:
+ * Marc Dumais (Ericsson) - initial implementation
+ *******************************************************************************/
+
+package org.eclipse.cdt.debug.core.breakpointactions;
+
+/**
+ * @since 7.3
+ */
+public interface IReverseDebugEnabler {
+
+ /**
+ * Toggles the state of the reverse debugging mode.
+ * @throws Exception
+ */
+ void toggle() throws Exception;
+
+ /**
+ * Enables the reverse debugging mode. No effect if already enabled.
+ * @throws Exception
+ */
+ void enable() throws Exception;
+
+ /**
+ * Disables the reverse debugging mode. No effect if it's not enabled.
+ * @throws Exception
+ */
+ void disable() throws Exception;
+
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index a68c817bb15..f2df720999c 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -11,6 +11,7 @@
# Patrick Chuong (Texas Instruments) - Pin and Clone Supports (Bug 331781)
# Dobrin Alexiev (Texas Instruments) - initial API and implementation (bug 336876)
# Marc Khouzam (Ericsson) - Added support for connect command (Bug 365601)
+# Marc Dumais (Ericsson) - Added support for reverse debug action (Bug 365776)
###############################################################################
pluginName=C/C++ Development Tools Debugger UI
@@ -157,6 +158,7 @@ SoundAction.name=Sound Action
LogAction.name=Log Action
ResumeAction.name=Resume Action
ExternalToolAction.name=External Tool Action
+ReverseDebugAction.name=Reverse Debug Action
# Breakpoint Types
breapointType.label=Type
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index d1ae7a9b7c4..fa6769bbf67 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -1710,6 +1710,14 @@
class="org.eclipse.cdt.debug.ui.breakpointactions.ExternalToolAction"
id="org.eclipse.cdt.debug.ui.breakpointactions.ExternalToolAction"/>
+
+
+
+
+
+
+
+
(fExecutor, null) {
+ @Override
+ public void handleSuccess() {
+ Boolean enabled = getData();
+ if ( (enabled.equals(false) && mode.equals(REVERSE_DEBUG_MODE.ENABLE) ) ||
+ (enabled.equals(true) && mode.equals(REVERSE_DEBUG_MODE.DISABLE) ) ||
+ (mode.equals(REVERSE_DEBUG_MODE.TOGGLE)) )
+ {
+ runControl.enableReverseMode(fContext, !enabled, new RequestMonitor(fExecutor, null));
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+
+}