Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/ContainerLaunchConfigurationDelegate.java')
-rw-r--r--launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/ContainerLaunchConfigurationDelegate.java329
1 files changed, 111 insertions, 218 deletions
diff --git a/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/ContainerLaunchConfigurationDelegate.java b/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/ContainerLaunchConfigurationDelegate.java
index 6c196229f9c..0aedb2981c8 100644
--- a/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/ContainerLaunchConfigurationDelegate.java
+++ b/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/ContainerLaunchConfigurationDelegate.java
@@ -65,13 +65,11 @@ import org.eclipse.linuxtools.docker.core.IDockerPortBinding;
import org.eclipse.linuxtools.docker.ui.launch.ContainerLauncher;
import org.eclipse.linuxtools.docker.ui.launch.IContainerLaunchListener;
-public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
- implements ILaunchConfigurationDelegate {
+public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate implements ILaunchConfigurationDelegate {
private ContainerLauncher launcher;
- private class StartGdbServerJob extends Job implements
- IContainerLaunchListener {
+ private class StartGdbServerJob extends Job implements IContainerLaunchListener {
private boolean started;
private boolean done;
@@ -104,8 +102,7 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
@Override
public void newOutput(String output) {
- if (output.contains(Messages.Gdbserver_up)
- || output.contains("gdbserver:")) { //$NON-NLS-1$
+ if (output.contains(Messages.Gdbserver_up) || output.contains("gdbserver:")) { //$NON-NLS-1$
started = true;
}
@@ -148,8 +145,8 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
@Override
- public void launch(ILaunchConfiguration configuration, String mode,
- ILaunch launch, IProgressMonitor monitor) throws CoreException {
+ public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor)
+ throws CoreException {
IPath commandPath = getCommandPath(configuration);
if (commandPath != null) {
@@ -157,12 +154,10 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
// kept
HashMap<String, String> labels = new HashMap<>();
labels.put("org.eclipse.cdt.container-launch", ""); //$NON-NLS-1$ //$NON-NLS-2$
- String projectName = configuration.getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$
+ String projectName = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$
labels.put("org.eclipse.cdt.project-name", projectName); //$NON-NLS-1$
if (mode.equals(ILaunchManager.RUN_MODE)) {
- String commandDir = commandPath.removeLastSegments(1)
- .toPortableString();
+ String commandDir = commandPath.removeLastSegments(1).toPortableString();
String commandString = commandPath.toPortableString();
if (commandPath.getDevice() != null) {
@@ -181,15 +176,12 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
String command = b.toString();
- String workingDir = configuration
- .getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
- (String) null);
+ String workingDir = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
+ (String) null);
// if we don't have a working directory, the default is to use
// the project
if (workingDir == null && projectName != null) {
- IProject project = ResourcesPlugin.getWorkspace().getRoot()
- .getProject(projectName);
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
workingDir = project.getLocation().toOSString();
}
@@ -200,19 +192,14 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
.replace(':', '/');
}
}
- Map<String, String> envMap = configuration.getAttribute(
- ILaunchManager.ATTR_ENVIRONMENT_VARIABLES,
+ Map<String, String> envMap = configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES,
(Map<String, String>) null);
Map<String, String> origEnv = null;
- boolean appendEnv = configuration
- .getAttribute(
- ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES,
- false);
+ boolean appendEnv = configuration.getAttribute(ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES, false);
if (appendEnv) {
origEnv = System.getenv();
}
- List<String> additionalDirs = configuration.getAttribute(
- ILaunchConstants.ATTR_ADDITIONAL_DIRS,
+ List<String> additionalDirs = configuration.getAttribute(ILaunchConstants.ATTR_ADDITIONAL_DIRS,
(List<String>) null);
if (additionalDirs != null) {
List<String> dirs = new ArrayList<>();
@@ -228,21 +215,17 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
List<String> ports = new ArrayList<>();
- List<String> portInfos = configuration.getAttribute(
- ILaunchConstants.ATTR_EXPOSED_PORTS,
+ List<String> portInfos = configuration.getAttribute(ILaunchConstants.ATTR_EXPOSED_PORTS,
Collections.emptyList());
for (String portInfo : portInfos) {
- ExposedPortModel m = ExposedPortModel
- .createPortModel(portInfo);
+ ExposedPortModel m = ExposedPortModel.createPortModel(portInfo);
if (m.getSelected()) {
StringBuilder b1 = new StringBuilder();
- if (m.getHostAddress() != null
- && !m.getHostAddress().isEmpty()) {
+ if (m.getHostAddress() != null && !m.getHostAddress().isEmpty()) {
b1.append(m.getHostAddress());
b1.append(":"); //$NON-NLS-1$
}
- if (m.getHostPort() != null
- && !m.getHostPort().isEmpty()) {
+ if (m.getHostPort() != null && !m.getHostPort().isEmpty()) {
b1.append(m.getHostPort());
}
// regardless if we have a host port or not,
@@ -259,34 +242,24 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
}
- String image = configuration.getAttribute(
- ILaunchConstants.ATTR_IMAGE, (String) null);
- String connectionUri = configuration.getAttribute(
- ILaunchConstants.ATTR_CONNECTION_URI, (String) "");
- boolean keepContainer = configuration.getAttribute(
- ILaunchConstants.ATTR_KEEP_AFTER_LAUNCH, false);
-
- boolean supportStdin = configuration.getAttribute(
- ILaunchConstants.ATTR_STDIN_SUPPORT, false);
-
- boolean privilegedMode = configuration.getAttribute(
- ILaunchConstants.ATTR_PRIVILEGED_MODE, false);
-
- launcher.launch(DockerLaunchUIPlugin.PLUGIN_ID, null,
- connectionUri,
- image, command,
- commandDir, workingDir, additionalDirs, origEnv,
- envMap, ports.isEmpty() ? null : ports, keepContainer,
- supportStdin,
- privilegedMode, labels);
+ String image = configuration.getAttribute(ILaunchConstants.ATTR_IMAGE, (String) null);
+ String connectionUri = configuration.getAttribute(ILaunchConstants.ATTR_CONNECTION_URI, (String) "");
+ boolean keepContainer = configuration.getAttribute(ILaunchConstants.ATTR_KEEP_AFTER_LAUNCH, false);
+
+ boolean supportStdin = configuration.getAttribute(ILaunchConstants.ATTR_STDIN_SUPPORT, false);
+
+ boolean privilegedMode = configuration.getAttribute(ILaunchConstants.ATTR_PRIVILEGED_MODE, false);
+
+ launcher.launch(DockerLaunchUIPlugin.PLUGIN_ID, null, connectionUri, image, command, commandDir,
+ workingDir, additionalDirs, origEnv, envMap, ports.isEmpty() ? null : ports, keepContainer,
+ supportStdin, privilegedMode, labels);
} else if (mode.equals(ILaunchManager.DEBUG_MODE)) {
- String gdbserverPortNumber = configuration.getAttribute(
- ILaunchConstants.ATTR_GDBSERVER_PORT,
+ String gdbserverPortNumber = configuration.getAttribute(ILaunchConstants.ATTR_GDBSERVER_PORT,
ILaunchConstants.ATTR_GDBSERVER_PORT_DEFAULT);
-
+
List<String> ports = new ArrayList<>();
- List<String> portInfos = configuration.getAttribute(
- ILaunchConstants.ATTR_EXPOSED_PORTS, Collections.emptyList());
+ List<String> portInfos = configuration.getAttribute(ILaunchConstants.ATTR_EXPOSED_PORTS,
+ Collections.emptyList());
String gdbserverPort = gdbserverPortNumber + "/tcp"; //$NON-NLS-1$
boolean gdbserverPortSpecified = false;
for (String portInfo : portInfos) {
@@ -317,15 +290,13 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
// if user hasn't already specified gdbserver port, we need to add it by default
if (!gdbserverPortSpecified) {
- ports.add(gdbserverPortNumber + "/tcp"); //$NON-NLS-1$
+ ports.add(gdbserverPortNumber + "/tcp"); //$NON-NLS-1$
}
- String gdbserverCommand = configuration.getAttribute(
- ILaunchConstants.ATTR_GDBSERVER_COMMAND,
+ String gdbserverCommand = configuration.getAttribute(ILaunchConstants.ATTR_GDBSERVER_COMMAND,
ILaunchConstants.ATTR_GDBSERVER_COMMAND_DEFAULT);
String commandString = commandPath.toPortableString();
- String commandDir = commandPath.removeLastSegments(1)
- .toPortableString();
+ String commandDir = commandPath.removeLastSegments(1).toPortableString();
if (commandPath.getDevice() != null) {
commandDir = "/" + commandDir.replace(':', '/'); //$NON-NLS-1$
@@ -346,15 +317,12 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
String command = b.toString();
- String workingDir = configuration
- .getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
- (String) null);
+ String workingDir = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
+ (String) null);
// if we don't have a working directory, the default is to use
// the project
if (workingDir == null && projectName != null) {
- IProject project = ResourcesPlugin.getWorkspace().getRoot()
- .getProject(projectName);
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
workingDir = project.getLocation().toOSString();
}
if (workingDir != null) {
@@ -365,19 +333,14 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
}
- Map<String, String> envMap = configuration.getAttribute(
- ILaunchManager.ATTR_ENVIRONMENT_VARIABLES,
+ Map<String, String> envMap = configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES,
(Map<String, String>) null);
Map<String, String> origEnv = null;
- boolean appendEnv = configuration
- .getAttribute(
- ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES,
- false);
+ boolean appendEnv = configuration.getAttribute(ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES, false);
if (appendEnv) {
origEnv = System.getenv();
}
- List<String> additionalDirs = configuration.getAttribute(
- ILaunchConstants.ATTR_ADDITIONAL_DIRS,
+ List<String> additionalDirs = configuration.getAttribute(ILaunchConstants.ATTR_ADDITIONAL_DIRS,
(List<String>) null);
if (additionalDirs != null) {
List<String> dirs = new ArrayList<>();
@@ -392,26 +355,21 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
additionalDirs = dirs;
}
- String image = configuration.getAttribute(
- ILaunchConstants.ATTR_IMAGE, (String) null);
- String connectionUri = configuration.getAttribute(
- ILaunchConstants.ATTR_CONNECTION_URI, (String) "");
+ String image = configuration.getAttribute(ILaunchConstants.ATTR_IMAGE, (String) null);
+ String connectionUri = configuration.getAttribute(ILaunchConstants.ATTR_CONNECTION_URI, (String) "");
boolean isLocalConnection = true;
try {
- Pattern ipaddrPattern = Pattern.compile(
- "[a-z]*://([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)[:]*[0-9]*");
+ Pattern ipaddrPattern = Pattern.compile("[a-z]*://([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)[:]*[0-9]*");
Matcher m = ipaddrPattern.matcher(connectionUri);
if (m.matches()) {
String ipaddr = m.group(1);
InetAddress addr = InetAddress.getByName(ipaddr);
- if (addr.isAnyLocalAddress()
- || addr.isLoopbackAddress()) {
+ if (addr.isAnyLocalAddress() || addr.isLoopbackAddress()) {
isLocalConnection = true;
} else {
// Check if the address is defined on any interface
try {
- isLocalConnection = NetworkInterface
- .getByInetAddress(addr) != null;
+ isLocalConnection = NetworkInterface.getByInetAddress(addr) != null;
} catch (SocketException e) {
isLocalConnection = false;
}
@@ -422,24 +380,17 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
Activator.log(e);
}
- boolean keepContainer = configuration.getAttribute(
- ILaunchConstants.ATTR_KEEP_AFTER_LAUNCH, false);
+ boolean keepContainer = configuration.getAttribute(ILaunchConstants.ATTR_KEEP_AFTER_LAUNCH, false);
- boolean supportStdin = configuration.getAttribute(
- ILaunchConstants.ATTR_STDIN_SUPPORT, false);
+ boolean supportStdin = configuration.getAttribute(ILaunchConstants.ATTR_STDIN_SUPPORT, false);
- boolean privilegedMode = configuration.getAttribute(
- ILaunchConstants.ATTR_PRIVILEGED_MODE, false);
+ boolean privilegedMode = configuration.getAttribute(ILaunchConstants.ATTR_PRIVILEGED_MODE, false);
- StartGdbServerJob job = new StartGdbServerJob(
- Messages.Gdbserver_start);
+ StartGdbServerJob job = new StartGdbServerJob(Messages.Gdbserver_start);
job.schedule();
- launcher.launch(DockerLaunchUIPlugin.PLUGIN_ID, job,
- connectionUri,
- image, command,
- commandDir, workingDir, additionalDirs, origEnv,
- envMap, ports, keepContainer, supportStdin,
- privilegedMode, labels, "seccomp:unconfined"); //$NON-NLS-1$
+ launcher.launch(DockerLaunchUIPlugin.PLUGIN_ID, job, connectionUri, image, command, commandDir,
+ workingDir, additionalDirs, origEnv, envMap, ports, keepContainer, supportStdin, privilegedMode,
+ labels, "seccomp:unconfined"); //$NON-NLS-1$
// wait until gdbserver is started successfully and we have its
// ip address or
@@ -452,39 +403,25 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
// if gdbserver started successfully and we have its ip address,
// launch the debugger
- if (job.getResult() == Status.OK_STATUS
- && job.getIpAddress() != null) {
+ if (job.getResult() == Status.OK_STATUS && job.getIpAddress() != null) {
// Let debugger know how gdbserver was started on the remote
// container
- ILaunchConfigurationWorkingCopy wc = configuration
- .getWorkingCopy();
- wc.setAttribute(
- IGDBLaunchConfigurationConstants.ATTR_REMOTE_TCP,
- true);
- wc.setAttribute(
- ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_START_MODE,
+ ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy();
+ wc.setAttribute(IGDBLaunchConfigurationConstants.ATTR_REMOTE_TCP, true);
+ wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_START_MODE,
IGDBLaunchConfigurationConstants.DEBUGGER_MODE_REMOTE);
Map<String, List<IDockerPortBinding>> hostPorts = new HashMap<>();
if (job.getPorts() != null && isLocalConnection) {
hostPorts = job.getPorts();
}
- List<IDockerPortBinding> bindingList = hostPorts
- .get(gdbserverPortNumber + "/tcp"); //$NON-NLS-1$
+ List<IDockerPortBinding> bindingList = hostPorts.get(gdbserverPortNumber + "/tcp"); //$NON-NLS-1$
if (bindingList != null && !bindingList.isEmpty()) {
IDockerPortBinding firstBinding = bindingList.get(0);
- wc.setAttribute(
- IGDBLaunchConfigurationConstants.ATTR_HOST,
- "localhost"); //$NON-NLS-1$
- wc.setAttribute(
- IGDBLaunchConfigurationConstants.ATTR_PORT,
- firstBinding.hostPort());
+ wc.setAttribute(IGDBLaunchConfigurationConstants.ATTR_HOST, "localhost"); //$NON-NLS-1$
+ wc.setAttribute(IGDBLaunchConfigurationConstants.ATTR_PORT, firstBinding.hostPort());
} else {
- wc.setAttribute(
- IGDBLaunchConfigurationConstants.ATTR_HOST,
- job.getIpAddress());
- wc.setAttribute(
- IGDBLaunchConfigurationConstants.ATTR_PORT,
- gdbserverPortNumber);
+ wc.setAttribute(IGDBLaunchConfigurationConstants.ATTR_HOST, job.getIpAddress());
+ wc.setAttribute(IGDBLaunchConfigurationConstants.ATTR_PORT, gdbserverPortNumber);
}
wc.doSave();
try {
@@ -504,43 +441,35 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
/**
* Get the program arguments and perform substitution.
- *
+ *
* @param config
* launch configuration
* @return argument String
* @throws CoreException
*/
- private String getProgramArguments(ILaunchConfiguration config)
- throws CoreException {
- String args = config.getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
- (String) "");
+ private String getProgramArguments(ILaunchConfiguration config) throws CoreException {
+ String args = config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, (String) "");
if (args != null && args.length() > 0) {
- args = VariablesPlugin.getDefault().getStringVariableManager()
- .performStringSubstitution(args);
+ args = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(args);
}
return args;
}
/**
* Form command path using the project and program name.
- *
+ *
* @param configuration
* @return command path
* @throws CoreException
*/
- private IPath getCommandPath(ILaunchConfiguration configuration)
- throws CoreException {
- String projectName = configuration.getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, "");
+ private IPath getCommandPath(ILaunchConfiguration configuration) throws CoreException {
+ String projectName = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, "");
if (projectName.length() > 0) {
- IProject project = CCorePlugin.getWorkspace().getRoot()
- .getProject(projectName);
+ IProject project = CCorePlugin.getWorkspace().getRoot().getProject(projectName);
if (project == null)
return null;
- String name = configuration.getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, "");
+ String name = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, "");
if (name.length() == 0)
return null;
@@ -590,8 +519,7 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
return inputString.replaceAll(" ", "\\\\ "); //$NON-NLS-1$ //$NON-NLS-2$
}
- public static IProject getProject(ILaunchConfiguration configuration)
- throws CoreException {
+ public static IProject getProject(ILaunchConfiguration configuration) throws CoreException {
// TODO - make sure this is really the correct project
return configuration.getMappedResources()[0].getProject();
}
@@ -604,37 +532,28 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
/**
* @since 1.2
*/
- protected IToolChainManager toolChainManager = CDebugCorePlugin
- .getService(IToolChainManager.class);
+ protected IToolChainManager toolChainManager = CDebugCorePlugin.getService(IToolChainManager.class);
/*
* @since 1.2
*/
- protected ICBuildConfiguration getBuildConfiguration(
- ILaunchConfiguration configuration, String mode,
- ILaunchTarget target, IProgressMonitor monitor)
- throws CoreException {
+ protected ICBuildConfiguration getBuildConfiguration(ILaunchConfiguration configuration, String mode,
+ ILaunchTarget target, IProgressMonitor monitor) throws CoreException {
IProject project = getProject(configuration);
- String toolchainId = configuration
- .getAttribute(ICBuildConfiguration.TOOLCHAIN_ID, (String) null);
+ String toolchainId = configuration.getAttribute(ICBuildConfiguration.TOOLCHAIN_ID, (String) null);
if (toolchainId != null) {
- String providerId = configuration
- .getAttribute(ICBuildConfiguration.TOOLCHAIN_TYPE, ""); //$NON-NLS-1$
- IToolChain toolchain = toolChainManager.getToolChain(providerId,
- toolchainId);
+ String providerId = configuration.getAttribute(ICBuildConfiguration.TOOLCHAIN_TYPE, ""); //$NON-NLS-1$
+ IToolChain toolchain = toolChainManager.getToolChain(providerId, toolchainId);
if (toolchain != null) {
- return configManager.getBuildConfiguration(project, toolchain,
- mode, monitor);
+ return configManager.getBuildConfiguration(project, toolchain, mode, monitor);
}
}
// Pick the first one that matches
Map<String, String> properties = new HashMap<>();
properties.putAll(target.getAttributes());
- for (IToolChain toolChain : toolChainManager
- .getToolChainsMatching(properties)) {
- ICBuildConfiguration buildConfig = configManager
- .getBuildConfiguration(project, toolChain, mode, monitor);
+ for (IToolChain toolChain : toolChainManager.getToolChainsMatching(properties)) {
+ ICBuildConfiguration buildConfig = configManager.getBuildConfiguration(project, toolChain, mode, monitor);
if (buildConfig != null) {
return buildConfig;
}
@@ -644,32 +563,27 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
@Override
- public boolean buildForLaunch(ILaunchConfiguration configuration,
- String mode, IProgressMonitor monitor) throws CoreException {
+ public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor)
+ throws CoreException {
IProject project = getProject(configuration);
String name = configuration.getName();
Pattern p = Pattern.compile(".*?\\[([^\\]]+)\\](.*)"); //$NON-NLS-1$
Matcher m = p.matcher(name);
if (m.matches()) {
- ILaunchTargetManager targetManager = CCorePlugin
- .getService(ILaunchTargetManager.class);
+ ILaunchTargetManager targetManager = CCorePlugin.getService(ILaunchTargetManager.class);
ILaunchTarget target = null;
- ILaunchTarget[] targets = targetManager.getLaunchTargetsOfType(
- ContainerTargetTypeProvider.TYPE_ID);
+ ILaunchTarget[] targets = targetManager.getLaunchTargetsOfType(ContainerTargetTypeProvider.TYPE_ID);
for (ILaunchTarget t : targets) {
- if (t.getAttribute(IContainerLaunchTarget.ATTR_IMAGE_ID, "")
- .replaceAll(":", "_").equals(m.group(1))) {
+ if (t.getAttribute(IContainerLaunchTarget.ATTR_IMAGE_ID, "").replaceAll(":", "_").equals(m.group(1))) {
target = t;
break;
}
}
if (target != null) {
- ICBuildConfiguration cconfig = getBuildConfiguration(
- configuration, mode, target, monitor);
+ ICBuildConfiguration cconfig = getBuildConfiguration(configuration, mode, target, monitor);
if (cconfig != null) {
IProjectDescription desc = project.getDescription();
- desc.setActiveBuildConfig(
- cconfig.getBuildConfiguration().getName());
+ desc.setActiveBuildConfig(cconfig.getBuildConfiguration().getName());
project.setDescription(desc, monitor);
}
}
@@ -679,50 +593,34 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
@Override
- public boolean finalLaunchCheck(ILaunchConfiguration configuration,
- String mode, IProgressMonitor monitor) throws CoreException {
+ public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor)
+ throws CoreException {
IProject project = getProject(configuration);
- ILaunchTargetManager targetManager = CCorePlugin
- .getService(ILaunchTargetManager.class);
+ ILaunchTargetManager targetManager = CCorePlugin.getService(ILaunchTargetManager.class);
ILaunchTarget target = null;
- ILaunchTarget[] targets = targetManager
- .getLaunchTargetsOfType(ContainerTargetTypeProvider.TYPE_ID);
- String image = configuration.getAttribute(
- IContainerLaunchTarget.ATTR_IMAGE_ID, (String) null);
- String connection = configuration.getAttribute(
- IContainerLaunchTarget.ATTR_CONNECTION_URI, (String) null);
+ ILaunchTarget[] targets = targetManager.getLaunchTargetsOfType(ContainerTargetTypeProvider.TYPE_ID);
+ String image = configuration.getAttribute(IContainerLaunchTarget.ATTR_IMAGE_ID, (String) null);
+ String connection = configuration.getAttribute(IContainerLaunchTarget.ATTR_CONNECTION_URI, (String) null);
for (ILaunchTarget t : targets) {
- if (t.getAttribute(IContainerLaunchTarget.ATTR_IMAGE_ID, "")
- .equals(image)) {
+ if (t.getAttribute(IContainerLaunchTarget.ATTR_IMAGE_ID, "").equals(image)) {
target = t;
break;
}
}
- String program = configuration.getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME,
- (String) null);
+ String program = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, (String) null);
if (program == null) {
- ICBuildConfiguration cconfig = getBuildConfiguration(configuration,
- mode, target, monitor);
+ ICBuildConfiguration cconfig = getBuildConfiguration(configuration, mode, target, monitor);
if (cconfig != null) {
IBinary[] binaries = cconfig.getBuildOutput();
for (IBinary b : binaries) {
- if (b.isExecutable()
- && b.getElementName().contains(project.getName())) {
- ILaunchConfigurationWorkingCopy wc = configuration
- .getWorkingCopy();
- wc.setAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME,
- b.getResource().getProjectRelativePath()
- .toString());
- wc.setMappedResources(new IResource[] { b.getResource(),
- b.getResource().getProject() });
- wc.setAttribute(
- ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
- (String) null); // default is the project
- // directory
- wc.setAttribute(ILaunchConstants.ATTR_CONNECTION_URI,
- connection);
+ if (b.isExecutable() && b.getElementName().contains(project.getName())) {
+ ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy();
+ wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME,
+ b.getResource().getProjectRelativePath().toString());
+ wc.setMappedResources(new IResource[] { b.getResource(), b.getResource().getProject() });
+ wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, (String) null); // default is the project
+ // directory
+ wc.setAttribute(ILaunchConstants.ATTR_CONNECTION_URI, connection);
wc.setAttribute(ILaunchConstants.ATTR_IMAGE, image);
wc.doSave();
@@ -735,27 +633,22 @@ public class ContainerLaunchConfigurationDelegate extends GdbLaunchDelegate
}
@Override
- public boolean preLaunchCheck(ILaunchConfiguration config, String mode,
- IProgressMonitor monitor) throws CoreException {
- String projectName = config.getAttribute(
- ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME,
- (String) null);
+ public boolean preLaunchCheck(ILaunchConfiguration config, String mode, IProgressMonitor monitor)
+ throws CoreException {
+ String projectName = config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String) null);
IProject project = null;
if (projectName == null) {
IResource[] resources = config.getMappedResources();
- if (resources != null && resources.length > 0
- && resources[0] instanceof IProject) {
+ if (resources != null && resources.length > 0 && resources[0] instanceof IProject) {
project = (IProject) resources[0];
}
ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
- wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME,
- project.getName());
+ wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, project.getName());
wc.doSave();
} else {
projectName = projectName.trim();
if (!projectName.isEmpty()) {
- project = ResourcesPlugin.getWorkspace().getRoot()
- .getProject(projectName);
+ project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
}
}

Back to the top