1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Bug 318214: Unify Basic remote launch with Advanced remote launch

This commit is contained in:
Marc Khouzam 2010-07-23 18:06:58 +00:00
parent e01304986c
commit abf3f62731
14 changed files with 84 additions and 140 deletions

View file

@ -13,8 +13,7 @@
pluginName=C/C++ Remote Debug Launcher
providerName=Eclipse CDT
launchConfigurationType.name = C/C++ Remote Application
cdiLaunchDelegate.name = Standard C/C++ Remote Application
cdiLaunchDelegate.description = Standard remote application launching/debugging using the standard debugger Framework (CDI).
dsfLaunchDelegate.name = GDB (DSF) Remote Debugging
dsfLaunchDelegate.description = Start new application on a remote system under control of GDB debugger integrated using the Debugger Services Framework (DSF).
cdiLaunchDelegate.name = Standard Remote Create Process
cdiLaunchDelegate.description = Automatically start and optionally debug a new application on a remote system under control of the standard debugger.
dsfLaunchDelegate.name = GDB (DSF) Automatic Remote Debugging
dsfLaunchDelegate.description = Automatically start and debug a new application on a remote system under control of GDB debugger integrated using the Debugger Services Framework (DSF).

View file

@ -14,19 +14,10 @@ Anna Dushistova (Mentor Graphics) - code restructuring
-->
<?eclipse version="3.0"?>
<plugin>
<extension
point="org.eclipse.debug.core.launchConfigurationTypes">
<launchConfigurationType
public="true"
name="%launchConfigurationType.name"
id="org.eclipse.rse.remotecdt.RemoteApplicationLaunch"
>
</launchConfigurationType>
</extension>
<extension point="org.eclipse.debug.core.launchDelegates">
<launchDelegate
id="org.eclipse.rse.remotecdt.launch"
type="org.eclipse.rse.remotecdt.RemoteApplicationLaunch"
type="org.eclipse.cdt.launch.remoteApplicationLaunchType"
modes="run,debug"
delegate="org.eclipse.cdt.launch.remote.launching.RemoteRunLaunchDelegate"
name="%cdiLaunchDelegate.name"
@ -36,7 +27,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</launchDelegate>
<launchDelegate
id="org.eclipse.rse.remotecdt.dsf.debug"
type="org.eclipse.rse.remotecdt.RemoteApplicationLaunch"
type="org.eclipse.cdt.launch.remoteApplicationLaunchType"
modes="debug"
delegate="org.eclipse.cdt.launch.remote.launching.RemoteGdbLaunchDelegate"
name="%dsfLaunchDelegate.name"
@ -46,63 +37,32 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</launchDelegate>
</extension>
<extension
point="org.eclipse.debug.ui.launchConfigurationTypeImages">
<launchConfigurationTypeImage
icon="icons/full/obj16/c_app.gif"
configTypeID="org.eclipse.rse.remotecdt.RemoteApplicationLaunch"
id="org.eclipse.cdt.launch.localRunLaunchImagefff">
</launchConfigurationTypeImage>
</extension>
<extension
point="org.eclipse.debug.ui.launchConfigurationTabGroups">
<launchConfigurationTabGroup
class="org.eclipse.cdt.launch.remote.tabs.RemoteLaunchConfigurationTabGroup"
helpContextId="org.eclipse.rse.remotecdt.launchgroup"
id="org.eclipse.rse.remotecdt.RemoteLaunchTabGroup"
type="org.eclipse.rse.remotecdt.RemoteApplicationLaunch">
<launchMode
mode="run">
</launchMode>
</launchConfigurationTabGroup>
<launchConfigurationTabGroup
class="org.eclipse.cdt.launch.remote.tabs.RemoteLaunchConfigurationTabGroup"
helpContextId="org.eclipse.rse.remotecdt.launchgroup"
id="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
type="org.eclipse.rse.remotecdt.RemoteApplicationLaunch">
<launchMode
mode="debug">
</launchMode>
</launchConfigurationTabGroup>
</extension>
<extension
point="org.eclipse.debug.ui.launchConfigurationTabs">
<tab
id="org.eclipse.rse.remotecdt.launch.RemoteCMainTab"
group="org.eclipse.rse.remotecdt.RemoteLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationRunLaunchTabGroup"
name="Main"
class="org.eclipse.cdt.launch.remote.tabs.RemoteCMainTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
</tab>
<tab
id="org.eclipse.rse.remotecdt.debug.RemoteCMainTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Main"
class="org.eclipse.cdt.launch.remote.tabs.RemoteCMainTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
</tab>
<tab
id="org.eclipse.rse.remotecdt.dsf.gdb.mainTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Main"
class="org.eclipse.cdt.launch.remote.tabs.RemoteCDSFMainTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.dsf.debug"/>
</tab>
<tab
id="org.eclipse.rse.remotecdt.launch.CAgrumentsTab"
group="org.eclipse.rse.remotecdt.RemoteLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationRunLaunchTabGroup"
name="Arguments"
class="org.eclipse.cdt.launch.ui.CArgumentsTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
@ -110,14 +70,14 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.debug.CArgumentsTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Arguments"
class="org.eclipse.cdt.launch.ui.CArgumentsTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
<placement after="org.eclipse.rse.remotecdt.launch.RemoteCMainTab"/>
</tab>
<tab id="org.eclipse.rse.remotecdt.dsf.debug.CArgumentsTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Arguments"
class="org.eclipse.cdt.dsf.gdb.internal.ui.launching.CArgumentsTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.dsf.debug"/>
@ -125,14 +85,14 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.launch.RemoteCDebuggerTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Debugger"
class="org.eclipse.cdt.launch.remote.tabs.RemoteCDebuggerTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
<placement after="org.eclipse.cdt.cdi.launch.argumentsTab"/>
</tab>
<tab id="org.eclipse.rse.remotecdt.dsf.debug.RemoteCDSFDebuggerTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Debugger"
class="org.eclipse.cdt.launch.remote.tabs.RemoteCDSFDebuggerTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.dsf.debug"/>
@ -140,7 +100,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.launch.SourceLookupTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Source"
class="org.eclipse.debug.ui.sourcelookup.SourceLookupTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
@ -148,7 +108,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.debug.dsf.SourceLookupTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Source"
class="org.eclipse.debug.ui.sourcelookup.SourceLookupTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.dsf.debug"/>
@ -156,7 +116,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.launch.CommonTab"
group="org.eclipse.rse.remotecdt.RemoteLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationRunLaunchTabGroup"
name="Common"
class="org.eclipse.debug.ui.CommonTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
@ -164,7 +124,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.debug.CommonTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Common"
class="org.eclipse.debug.ui.CommonTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/>
@ -172,7 +132,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring
</tab>
<tab
id="org.eclipse.rse.remotecdt.debug.dsf.CommonTab"
group="org.eclipse.rse.remotecdt.RemoteDebugTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="Common"
class="org.eclipse.debug.ui.CommonTab">
<associatedDelegate delegate="org.eclipse.rse.remotecdt.dsf.debug"/>

View file

@ -12,14 +12,7 @@
package org.eclipse.cdt.internal.launch.remote;
import java.util.HashSet;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunchConfigurationType;
import org.eclipse.debug.core.ILaunchDelegate;
import org.eclipse.debug.core.ILaunchManager;
import org.osgi.framework.BundleContext;
/**
@ -30,13 +23,6 @@ public class Activator extends Plugin {
// The plug-in ID
public static final String PLUGIN_ID = "org.eclipse.cdt.launch.remote"; //$NON-NLS-1$
private static final String REMOTE_LAUNCH_TYPE = "org.eclipse.rse.remotecdt.RemoteApplicationLaunch"; //$NON-NLS-1$
private static final String PREFERRED_DEBUG_REMOTE_LAUNCH_DELEGATE = "org.eclipse.rse.remotecdt.dsf.debug"; //$NON-NLS-1$
/* The shared instance */
private static Activator plugin;
@ -53,7 +39,6 @@ public class Activator extends Plugin {
*/
public void start(BundleContext context) throws Exception {
super.start(context);
setDefaultLaunchDelegates();
}
/*
@ -77,27 +62,4 @@ public class Activator extends Plugin {
public static BundleContext getBundleContext() {
return getDefault().getBundle().getBundleContext();
}
private void setDefaultLaunchDelegates() {
// Set the default launch delegates as early as possible, and do it only once (Bug 312997)
ILaunchManager launchMgr = DebugPlugin.getDefault().getLaunchManager();
HashSet<String> debugSet = new HashSet<String>();
debugSet.add(ILaunchManager.DEBUG_MODE);
ILaunchConfigurationType remoteCfg = launchMgr.getLaunchConfigurationType(REMOTE_LAUNCH_TYPE);
try {
if (remoteCfg.getPreferredDelegate(debugSet) == null) {
ILaunchDelegate[] delegates = remoteCfg.getDelegates(debugSet);
for (ILaunchDelegate delegate : delegates) {
if (PREFERRED_DEBUG_REMOTE_LAUNCH_DELEGATE.equals(delegate.getId())) {
remoteCfg.setPreferredDelegate(debugSet, delegate);
break;
}
}
}
} catch (CoreException e) {}
}
}

View file

@ -1,31 +0,0 @@
/*******************************************************************************
* Copyright (c) 2006, 2010 PalmSource, Inc. 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:
* Ewa Matejska (PalmSource) - Adapted from LocalRunLaunchConfigurationTabGroup
* Anna Dushistova (Mentor Graphics) - [314659] move remote launch/debug to DSF
* Anna Dushistova (Mentor Graphics) - moved to org.eclipse.cdt.launch.remote.tabs
*******************************************************************************/
package org.eclipse.cdt.launch.remote.tabs;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
/**
* This class defines the tab group for the Remote C++ Launch Configuration. It
* returns an empty set of tabs because all the tabs are contributed via
* launchConfigurationTabs extension point
*/
public class RemoteLaunchConfigurationTabGroup extends
AbstractLaunchConfigurationTabGroup {
public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {};
setTabs(tabs);
}
}

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.debug.core; singleton:=true
Bundle-Version: 7.0.0.qualifier
Bundle-Version: 7.1.0.qualifier
Bundle-Activator: org.eclipse.cdt.debug.core.CDebugCorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin

View file

@ -20,6 +20,7 @@ providerName=Eclipse CDT
ApplicationLaunch.name=C/C++ Application
AttachLaunch.name=C/C++ Attach to Application
PostMortemLaunch.name=C/C++ Postmortem Debugger
RemoteApplicationLaunch.name=C/C++ Remote Application
CDebugger.name=C/C++ Development Tools Core Debugger Extension
BreakpointAction.name=Breakpoint Action Extension

View file

@ -28,6 +28,11 @@
name="%PostMortemLaunch.name"
public="true">
</launchConfigurationType>
<launchConfigurationType
id="org.eclipse.cdt.launch.remoteApplicationLaunchType"
name="%RemoteApplicationLaunch.name"
public="true">
</launchConfigurationType>
</extension>
<extension

View file

@ -455,6 +455,19 @@ public class CDebugCorePlugin extends Plugin {
}
} catch (CoreException e) {}
ILaunchConfigurationType remoteCfg = launchMgr.getLaunchConfigurationType(ICDTLaunchConfigurationConstants.ID_LAUNCH_C_REMOTE_APP);
try {
if (remoteCfg.getPreferredDelegate(debugSet) == null) {
ILaunchDelegate[] delegates = remoteCfg.getDelegates(debugSet);
for (ILaunchDelegate delegate : delegates) {
if (ICDTLaunchConfigurationConstants.PREFERRED_DEBUG_REMOTE_LAUNCH_DELEGATE.equals(delegate.getId())) {
remoteCfg.setPreferredDelegate(debugSet, delegate);
break;
}
}
}
} catch (CoreException e) {}
ILaunchConfigurationType attachCfg = launchMgr.getLaunchConfigurationType(ICDTLaunchConfigurationConstants.ID_LAUNCH_C_ATTACH);
try {
if (attachCfg.getPreferredDelegate(debugSet) == null) {

View file

@ -27,6 +27,13 @@ public interface ICDTLaunchConfigurationConstants {
*/
public static final String ID_LAUNCH_C_APP = "org.eclipse.cdt.launch.applicationLaunchType"; //$NON-NLS-1$
/**
* This is the remote application launch type id.
*
* @since 7.1
*/
public static final String ID_LAUNCH_C_REMOTE_APP = "org.eclipse.cdt.launch.remoteApplicationLaunchType"; //$NON-NLS-1$
/**
* This is the attach launch type id.
*
@ -47,6 +54,16 @@ public interface ICDTLaunchConfigurationConstants {
*/
public static final String PREFERRED_DEBUG_LOCAL_LAUNCH_DELEGATE = "org.eclipse.cdt.dsf.gdb.launch.localCLaunch"; //$NON-NLS-1$
/**
* Specifies the default launch delegate for a Remote Debug session.
* This default is part of the optional plugin org.eclipse.cdt.launch.remote. If that plugin is not installed
* then we won't set a default, which is ok since we only have one other delegate
* (which is org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch).
* @since 7.1
*/
public static final String PREFERRED_DEBUG_REMOTE_LAUNCH_DELEGATE = "org.eclipse.rse.remotecdt.dsf.debug"; //$NON-NLS-1$
/**
* Specifies the default launch delegate for an Attach Debug session
* @since 7.0

View file

@ -24,6 +24,11 @@
configTypeID="org.eclipse.cdt.launch.postmortemLaunchType"
id="org.eclipse.cdt.launch.coreFileLaunchImage">
</launchConfigurationTypeImage>
<launchConfigurationTypeImage
icon="icons/obj16/c_app.gif"
configTypeID="org.eclipse.cdt.launch.remoteApplicationLaunchType"
id="org.eclipse.cdt.launch.remoteRunLaunchImage">
</launchConfigurationTypeImage>
</extension>
<extension
@ -50,6 +55,18 @@
class="org.eclipse.cdt.debug.internal.ui.launch.PlaceHolderLaunchConfigurationTabGroup"
id="org.eclipse.cdt.launch.postmortemLaunchTabGroup">
</launchConfigurationTabGroup>
<launchConfigurationTabGroup
type="org.eclipse.cdt.launch.remoteApplicationLaunchType"
class="org.eclipse.cdt.debug.internal.ui.launch.PlaceHolderLaunchConfigurationTabGroup"
id="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup">
<launchMode mode="debug"/>
</launchConfigurationTabGroup>
<launchConfigurationTabGroup
type="org.eclipse.cdt.launch.remoteApplicationLaunchType"
class="org.eclipse.cdt.debug.internal.ui.launch.PlaceHolderLaunchConfigurationTabGroup"
id="org.eclipse.cdt.launch.remoteApplicationRunLaunchTabGroup">
<launchMode mode="run"/>
</launchConfigurationTabGroup>
</extension>
<extension

View file

@ -17,6 +17,7 @@ import org.eclipse.cdt.core.ICDescriptor;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
import org.eclipse.cdt.ui.CElementLabelProvider;
@ -94,7 +95,7 @@ public class ImportExecutablePageTwo extends WizardPage {
if (wizard.supportsConfigurationType(type)) {
configTypes.add(configTypeName);
if (type.getIdentifier().equals("org.eclipse.cdt.launch.applicationLaunchType")) { //$NON-NLS-1$
if (type.getIdentifier().equals(ICDTLaunchConfigurationConstants.ID_LAUNCH_C_APP)) {
capp = j;
}
j++;

View file

@ -55,14 +55,14 @@
<!-- Remote application launch tabs-->
<tab
id="org.eclipse.cdt.dsf.gdb.launch.remoteApplicationLaunch.mainTab"
group="org.eclipse.cdt.launch.applicationLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="%launchTab.main.name"
class="org.eclipse.cdt.dsf.gdb.internal.ui.launching.CMainTab">
<associatedDelegate delegate="org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch"/>
</tab>
<tab
id="org.eclipse.cdt.dsf.gdb.launch.remoteApplicationLaunch.debuggerTab"
group="org.eclipse.cdt.launch.applicationLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="%launchTab.debugger.name"
class="org.eclipse.cdt.dsf.gdb.internal.ui.launching.RemoteApplicationCDebuggerTab">
<associatedDelegate delegate="org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch"/>
@ -70,7 +70,7 @@
</tab>
<tab
id="org.eclipse.cdt.dsf.gdb.launch.remoteApplicationLaunch.sourceLookupTab"
group="org.eclipse.cdt.launch.applicationLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="%launchTab.sourceLookup.name"
class="org.eclipse.debug.ui.sourcelookup.SourceLookupTab">
<associatedDelegate delegate="org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch"/>
@ -78,7 +78,7 @@
</tab>
<tab
id="org.eclipse.cdt.dsf.gdb.launch.remoteApplicationLaunch.commonTab"
group="org.eclipse.cdt.launch.applicationLaunchTabGroup"
group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup"
name="%launchTab.common.name"
class="org.eclipse.debug.ui.CommonTab">
<associatedDelegate delegate="org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch"/>

View file

@ -14,9 +14,9 @@ providerName=Eclipse CDT
launchDelegate.localApplication.name=GDB (DSF) Create Process
launchDelegate.localApplication.description=Start new application under control of GDB debugger integrated using the Debugger Services Framework (DSF).
launchDelegate.remoteApplication.name=GDB (DSF) Remote System Process
launchDelegate.remoteApplication.description=Start new application on a remote system under control of GDB debugger integrated using the Debugger Services Framework (DSF).
launchDelegate.remoteApplication.name=GDB (DSF) Manual Remote Debugging
launchDelegate.remoteApplication.description=Debug a new application that was manually started on a remote system under control of GDB debugger integrated using the Debugger Services Framework (DSF).
launchDelegate.attach.name=GDB (DSF) Attach to Process
launchDelegate.attach.description=Attach the GDB debugger, integrated using the Debugger Services Framework (DSF), to a running program.
launchDelegate.attach.description=Attach the GDB debugger, integrated using the Debugger Services Framework (DSF), to a running program locally or remotely.
launchDelegate.postmortem.name=GDB (DSF) Postmortem Debugger
launchDelegate.postmortem.description=Load an application dump under into the GDB debugger integrated using the Debugger Services Framework (DSF).
launchDelegate.postmortem.description=Load an application dump using the GDB debugger integrated using the Debugger Services Framework (DSF).

View file

@ -15,7 +15,7 @@
</launchDelegate>
<launchDelegate
id="org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch"
type="org.eclipse.cdt.launch.applicationLaunchType"
type="org.eclipse.cdt.launch.remoteApplicationLaunchType"
modes="debug"
delegate="org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate"
name="%launchDelegate.remoteApplication.name"