From c2605537bc1c5046d539829aba24c8ac14fa5777 Mon Sep 17 00:00:00 2001 From: Marc Dumais Date: Thu, 13 Dec 2012 13:21:13 -0500 Subject: [PATCH] Bug 365776 - [breakpoints] Add breakpoint action to toggle reverse debugging. Change-Id: I065297685fefba76df7ad40c578a0ce5d0c40fba Reviewed-on: https://git.eclipse.org/r/8982 IP-Clean: Marc Khouzam Tested-by: Marc Khouzam Reviewed-by: Marc Khouzam --- .../IReverseDebugEnabler.java | 37 ++++ .../plugin.properties | 2 + debug/org.eclipse.cdt.debug.ui/plugin.xml | 16 ++ .../breakpointactions/ReverseDebugAction.java | 193 ++++++++++++++++++ .../ReverseDebugActionComposite.java | 58 ++++++ .../ReverseDebugActionPage.java | 42 ++++ .../ui/breakpointactions/messages.properties | 12 +- .../actions/BreakpointActionAdapter.java | 7 +- .../actions/MIReverseDebugEnabler.java | 89 ++++++++ 9 files changed, 454 insertions(+), 2 deletions(-) create mode 100644 debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/breakpointactions/IReverseDebugEnabler.java create mode 100644 debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/ReverseDebugAction.java create mode 100644 debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/ReverseDebugActionComposite.java create mode 100644 debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpointactions/ReverseDebugActionPage.java create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MIReverseDebugEnabler.java 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)); + } + } + }); + } + } + }); + } + +}