Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Khouzam2010-05-14 06:25:25 -0400
committerMarc Khouzam2010-05-14 06:25:25 -0400
commit24f6fec914c02bef54c1285bcee4b1ddd35fa58d (patch)
tree0ca599951172f82956faddcc637b2378ad651298 /launch/org.eclipse.cdt.launch
parent5bf01b697534543c96dd56b0d62e483bda8351b7 (diff)
downloadorg.eclipse.cdt-24f6fec914c02bef54c1285bcee4b1ddd35fa58d.tar.gz
org.eclipse.cdt-24f6fec914c02bef54c1285bcee4b1ddd35fa58d.tar.xz
org.eclipse.cdt-24f6fec914c02bef54c1285bcee4b1ddd35fa58d.zip
Bug 304384: Undo the last fix which broke the case where we first created a Run configuration. Instead, check if the global pref is set before forcing a preferred launch delegate.
Diffstat (limited to 'launch/org.eclipse.cdt.launch')
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CMainTab.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CMainTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CMainTab.java
index 47c37a1875..2c92c2eecc 100644
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CMainTab.java
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CMainTab.java
@@ -12,6 +12,8 @@
*******************************************************************************/
package org.eclipse.cdt.launch.ui;
+import java.util.HashSet;
+
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.ICElement;
@@ -32,6 +34,7 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -530,7 +533,31 @@ public class CMainTab extends CAbstractMainTab {
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
public void setDefaults(ILaunchConfigurationWorkingCopy config) {
-
+ // Workaround for bug 262840
+ try {
+ HashSet<String> set = new HashSet<String>();
+ set.add(ILaunchManager.DEBUG_MODE);
+ if ( config.getPreferredDelegate(set) == null && config.getType().getPreferredDelegate(set) == null) {
+ if (config.getType().getIdentifier().equals(ICDTLaunchConfigurationConstants.ID_LAUNCH_C_APP)) {
+ config.setPreferredLaunchDelegate(set, ICDTLaunchConfigurationConstants.PREFERRED_DEBUG_LOCAL_LAUNCH_DELEGATE);
+ } else if (config.getType().getIdentifier().equals(ICDTLaunchConfigurationConstants.ID_LAUNCH_C_ATTACH)) {
+ config.setPreferredLaunchDelegate(set, ICDTLaunchConfigurationConstants.PREFERRED_DEBUG_ATTACH_LAUNCH_DELEGATE);
+ } else if (config.getType().getIdentifier().equals(ICDTLaunchConfigurationConstants.ID_LAUNCH_C_POST_MORTEM)) {
+ config.setPreferredLaunchDelegate(set, ICDTLaunchConfigurationConstants.PREFERRED_DEBUG_POSTMORTEM_LAUNCH_DELEGATE);
+ }
+ }
+ } catch (CoreException e) {}
+
+ // We must also set the preferred delegate for Run mode, because this configuration
+ // can be used in Run mode.
+ try {
+ HashSet<String> set = new HashSet<String>();
+ set.add(ILaunchManager.RUN_MODE);
+ if ( config.getPreferredDelegate(set) == null && config.getType().getPreferredDelegate(set) == null) {
+ config.setPreferredLaunchDelegate(set, ICDTLaunchConfigurationConstants.PREFERRED_RUN_LAUNCH_DELEGATE);
+ }
+ } catch (CoreException e) {}
+
// We set empty attributes for project & program so that when one config
// is
// compared to another, the existence of empty attributes doesn't cause

Back to the top