mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-20 06:35:50 +02:00
Bug 495044 - Fix launching for msys2
Not sure how this was working my desktop machine, but in my home environment, I ran across an issue where the macros weren't resolved in the ICdtVariables used for the launch. They need to be resolved. I think took a look at the debug launch because it was also failing. As I found out, the GdbLaunchDelegate wasn't using the new GDBLaunch getVersion routine and was using the deprecated method in launch utils. Change-Id: I63076833fc444c6df7f758e08df67c1c6f9d9f72
This commit is contained in:
parent
c62b5f8ae6
commit
b5b78c64d6
3 changed files with 13 additions and 11 deletions
|
@ -32,6 +32,7 @@ import java.util.concurrent.RejectedExecutionException;
|
|||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
|
||||
import org.eclipse.cdt.core.cdtvariables.ICdtVariable;
|
||||
import org.eclipse.cdt.core.cdtvariables.ICdtVariableManager;
|
||||
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
|
@ -660,19 +661,17 @@ public class GdbLaunch extends DsfLaunch implements ITerminate, IDisconnect, ITr
|
|||
}
|
||||
|
||||
// Add variables from build info
|
||||
ICdtVariable[] buildVars = CCorePlugin.getDefault().getCdtVariableManager().getVariables(cfg);
|
||||
ICdtVariableManager manager = CCorePlugin.getDefault().getCdtVariableManager();
|
||||
ICdtVariable[] buildVars = manager.getVariables(cfg);
|
||||
for (ICdtVariable var : buildVars) {
|
||||
try {
|
||||
// The project_classpath variable contributed by JDT is
|
||||
// useless
|
||||
// for running C/C++
|
||||
// binaries, but it can be lethal if it has a very large
|
||||
// value
|
||||
// that exceeds shell
|
||||
// limit. See
|
||||
// useless for running C/C++ binaries, but it can be lethal
|
||||
// if it has a very large value that exceeds shell limit. See
|
||||
// http://bugs.eclipse.org/bugs/show_bug.cgi?id=408522
|
||||
if (!"project_classpath".equals(var.getName())) {//$NON-NLS-1$
|
||||
envMap.put(var.getName(), var.getStringValue());
|
||||
String value = manager.resolveValue(var.getStringValue(), "", File.pathSeparator, cfg); //$NON-NLS-1$
|
||||
envMap.put(var.getName(), value);
|
||||
}
|
||||
} catch (CdtVariableException e) {
|
||||
// Some Eclipse dynamic variables can't be resolved
|
||||
|
|
|
@ -139,7 +139,7 @@ public class GdbLaunchDelegate extends AbstractCLaunchDelegate2
|
|||
|
||||
monitor.worked(1);
|
||||
|
||||
String gdbVersion = getGDBVersion(config);
|
||||
String gdbVersion = launch.getGDBVersion();
|
||||
|
||||
// First make sure non-stop is supported, if the user want to use this mode
|
||||
if (LaunchUtils.getIsNonStopMode(config) && !isNonStopSupportedInGdbVersion(gdbVersion)) {
|
||||
|
|
|
@ -25,6 +25,7 @@ import java.util.Map.Entry;
|
|||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
|
||||
import org.eclipse.cdt.core.cdtvariables.ICdtVariable;
|
||||
import org.eclipse.cdt.core.cdtvariables.ICdtVariableManager;
|
||||
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
|
@ -204,7 +205,8 @@ public class LocalRunLaunchDelegate extends AbstractCLaunchDelegate2 {
|
|||
}
|
||||
|
||||
// Add variables from build info
|
||||
ICdtVariable[] buildVars = CCorePlugin.getDefault().getCdtVariableManager().getVariables(cfg);
|
||||
ICdtVariableManager manager = CCorePlugin.getDefault().getCdtVariableManager();
|
||||
ICdtVariable[] buildVars = manager.getVariables(cfg);
|
||||
for (ICdtVariable var : buildVars) {
|
||||
try {
|
||||
// The project_classpath variable contributed by JDT is
|
||||
|
@ -213,7 +215,8 @@ public class LocalRunLaunchDelegate extends AbstractCLaunchDelegate2 {
|
|||
// shell limit. See
|
||||
// http://bugs.eclipse.org/bugs/show_bug.cgi?id=408522
|
||||
if (!"project_classpath".equals(var.getName())) {//$NON-NLS-1$
|
||||
envMap.put(var.getName(), var.getStringValue());
|
||||
String value = manager.resolveValue(var.getStringValue(), "", File.pathSeparator, cfg); //$NON-NLS-1$
|
||||
envMap.put(var.getName(), value);
|
||||
}
|
||||
} catch (CdtVariableException e) {
|
||||
// Some Eclipse dynamic variables can't be resolved
|
||||
|
|
Loading…
Add table
Reference in a new issue