diff options
3 files changed, 22 insertions, 5 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/plugin.xml index a50feed5e..f6225dbbd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/plugin.xml @@ -62,7 +62,15 @@ Anna Dushistova (MontaVista) - adapted from org.eclipse.cdt.launch.remote name="Arguments" class="org.eclipse.cdt.dsf.gdb.internal.ui.launching.CArgumentsTab"> <associatedDelegate delegate="org.eclipse.tcf.te.remotecdt.run"/> - <placement after="org.eclipse.tcf.te.remotecdt.run.mainTab"/> + <placement after="org.eclipse.tcf.te.remotecdt.debug.mainTab"/> + </tab> + <tab + id="org.eclipse.tcf.te.remotecdt.run.environmentTab" + group="org.eclipse.cdt.launch.remoteApplicationRunLaunchTabGroup" + name="Environment" + class="org.eclipse.tcf.te.tcf.launch.cdt.tabs.TEEnvironmentTab"> + <associatedDelegate delegate="org.eclipse.tcf.te.remotecdt.run"/> + <placement after="org.eclipse.cdt.dsf.gdb.launch.argumentsTab"/> </tab> <tab id="org.eclipse.tcf.te.remotecdt.CommonTab" diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/launching/TERunLaunchDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/launching/TERunLaunchDelegate.java index 19aa36f08..c20452257 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/launching/TERunLaunchDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/launching/TERunLaunchDelegate.java @@ -10,6 +10,7 @@ package org.eclipse.tcf.te.tcf.launch.cdt.launching; import java.io.IOException; +import java.util.Map; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.debug.core.CDebugUtils; @@ -22,6 +23,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchManager; import org.eclipse.osgi.util.NLS; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.te.runtime.callback.Callback; @@ -59,9 +61,10 @@ public class TERunLaunchDelegate extends AbstractCLaunchDelegate { monitor.setTaskName(Messages.TEGdbAbstractLaunchDelegate_starting_debugger); String arguments = getProgramArguments(config); String prelaunchCmd = config.getAttribute(IRemoteTEConfigurationConstants.ATTR_PRERUN_COMMANDS, ""); //$NON-NLS-1$ + Map<String,String> env = config.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, (Map<String,String>)null); TEHelper.launchCmd(peer, null, prelaunchCmd, null, new SubProgressMonitor(monitor, 2), new Callback()); - new TERunProcess(launch, remoteExePath, arguments, renderProcessLabel(exePath.toOSString()), peer, new SubProgressMonitor(monitor, 20)); + new TERunProcess(launch, remoteExePath, arguments, env, renderProcessLabel(exePath.toOSString()), peer, new SubProgressMonitor(monitor, 20)); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/utils/TERunProcess.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/utils/TERunProcess.java index 7c221f425..09027c445 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/utils/TERunProcess.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/utils/TERunProcess.java @@ -13,6 +13,7 @@ package org.eclipse.tcf.te.tcf.launch.cdt.utils; import java.util.EventObject; +import java.util.Map; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; @@ -49,7 +50,12 @@ public class TERunProcess extends PlatformObject implements IProcess, private int exitValue; public TERunProcess(ILaunch launch, String remoteExePath, String arguments, - String label, IPeer peer, SubProgressMonitor monitor) { + String label, IPeer peer, SubProgressMonitor monitor) { + this(launch, remoteExePath, arguments, null, label, peer, monitor); + } + + public TERunProcess(ILaunch launch, String remoteExePath, String arguments, + Map<String, String> env, String label, IPeer peer, SubProgressMonitor monitor) { this.launch = launch; // initializeAttributes(attributes); prName = remoteExePath; @@ -58,8 +64,8 @@ public class TERunProcess extends PlatformObject implements IProcess, EventManager.getInstance().addEventListener(this, ProcessStateChangeEvent.class); try { - prLauncher = TEHelper.launchCmd(peer, null, remoteExePath, arguments, - null, monitor, new Callback()); + prLauncher = TEHelper.launchCmdWithEnv(peer, null, remoteExePath, arguments, + env, null, monitor, new Callback()); } catch (CoreException e) { Activator.getDefault().getLog().log( new Status(IStatus.ERROR, Activator.getUniqueIdentifier(), |