Skip to main content
summaryrefslogtreecommitdiffstats
path: root/cross
diff options
context:
space:
mode:
authorMarc Khouzam2012-01-27 13:33:35 -0500
committerMarc Khouzam2012-01-27 13:33:35 -0500
commitf13bdf3b334e088e06f032879ebe20f2836ca414 (patch)
tree2c6e3832fd8366a81059b98c482f6d1763a0a222 /cross
parent1928101334b17b7a97e4651d95dec114669cabec (diff)
downloadorg.eclipse.cdt-f13bdf3b334e088e06f032879ebe20f2836ca414.tar.gz
org.eclipse.cdt-f13bdf3b334e088e06f032879ebe20f2836ca414.tar.xz
org.eclipse.cdt-f13bdf3b334e088e06f032879ebe20f2836ca414.zip
Bug 368597: Although we don't complete the launch, we still need to shutdown the DSF session as it was started already.
Diffstat (limited to 'cross')
-rw-r--r--cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java
index 79b5907a4d..7228896f96 100644
--- a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java
+++ b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java
@@ -13,11 +13,14 @@
*******************************************************************************/
package org.eclipse.cdt.launch.remote.launching;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.RejectedExecutionException;
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
+import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.concurrent.DsfRunnable;
import org.eclipse.cdt.dsf.concurrent.ImmediateRequestMonitor;
+import org.eclipse.cdt.dsf.concurrent.Query;
import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants;
import org.eclipse.cdt.dsf.gdb.launching.GdbLaunch;
import org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate;
@@ -178,6 +181,19 @@ public class RemoteGdbLaunchDelegate extends GdbLaunchDelegate {
if (remoteShellProcess != null) {
remoteShellProcess.destroy();
}
+
+ // Need to shutdown the DSF launch session because it is
+ // partially started already.
+ try {
+ l.getSession().getExecutor().execute(new DsfRunnable() {
+ public void run() {
+ l.shutdownSession(new ImmediateRequestMonitor());
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ // Session disposed.
+ }
+
RSEHelper.abort(Messages.RemoteGdbLaunchDelegate_gdbserverFailedToStartErrorMessage, null,
ICDTLaunchConfigurationConstants.ERR_DEBUGGER_NOT_INSTALLED);
}

Back to the top