mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-10 12:03:16 +02:00
Bug 166960: Set environment before loading executable to allow for dynamically loaded library to be found
This commit is contained in:
parent
d87f6ff74c
commit
65be0d654f
1 changed files with 44 additions and 44 deletions
|
@ -134,6 +134,50 @@ public class FinalLaunchSequence extends Sequence {
|
||||||
requestMonitor.done();
|
requestMonitor.done();
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
/*
|
||||||
|
* Specify GDB's working directory
|
||||||
|
*/
|
||||||
|
new Step() { @Override
|
||||||
|
public void execute(final RequestMonitor requestMonitor) {
|
||||||
|
IPath dir = null;
|
||||||
|
try {
|
||||||
|
dir = fGDBBackend.getGDBWorkingDirectory();
|
||||||
|
} catch (CoreException e) {
|
||||||
|
requestMonitor.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, -1, "Cannot get working directory", e)); //$NON-NLS-1$
|
||||||
|
requestMonitor.done();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dir != null) {
|
||||||
|
fCommandControl.queueCommand(
|
||||||
|
fCommandFactory.createMIEnvironmentCD(fCommandControl.getContext(), dir.toPortableString()),
|
||||||
|
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor));
|
||||||
|
} else {
|
||||||
|
requestMonitor.done();
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
/*
|
||||||
|
* Specify environment variables if needed
|
||||||
|
*/
|
||||||
|
new Step() { @Override
|
||||||
|
public void execute(final RequestMonitor requestMonitor) {
|
||||||
|
boolean clear = false;
|
||||||
|
Properties properties = new Properties();
|
||||||
|
try {
|
||||||
|
clear = fGDBBackend.getClearEnvironment();
|
||||||
|
properties = fGDBBackend.getEnvironmentVariables();
|
||||||
|
} catch (CoreException e) {
|
||||||
|
requestMonitor.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, -1, "Cannot get environment information", e)); //$NON-NLS-1$
|
||||||
|
requestMonitor.done();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clear == true || properties.size() > 0) {
|
||||||
|
fCommandControl.setEnvironment(properties, clear, requestMonitor);
|
||||||
|
} else {
|
||||||
|
requestMonitor.done();
|
||||||
|
}
|
||||||
|
}},
|
||||||
/*
|
/*
|
||||||
* Specify the executable file to be debugged and read the symbol table.
|
* Specify the executable file to be debugged and read the symbol table.
|
||||||
*/
|
*/
|
||||||
|
@ -179,50 +223,6 @@ public class FinalLaunchSequence extends Sequence {
|
||||||
requestMonitor.done();
|
requestMonitor.done();
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
/*
|
|
||||||
* Specify GDB's working directory
|
|
||||||
*/
|
|
||||||
new Step() { @Override
|
|
||||||
public void execute(final RequestMonitor requestMonitor) {
|
|
||||||
IPath dir = null;
|
|
||||||
try {
|
|
||||||
dir = fGDBBackend.getGDBWorkingDirectory();
|
|
||||||
} catch (CoreException e) {
|
|
||||||
requestMonitor.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, -1, "Cannot get working directory", e)); //$NON-NLS-1$
|
|
||||||
requestMonitor.done();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir != null) {
|
|
||||||
fCommandControl.queueCommand(
|
|
||||||
fCommandFactory.createMIEnvironmentCD(fCommandControl.getContext(), dir.toPortableString()),
|
|
||||||
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor));
|
|
||||||
} else {
|
|
||||||
requestMonitor.done();
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
/*
|
|
||||||
* Specify environment variables if needed
|
|
||||||
*/
|
|
||||||
new Step() { @Override
|
|
||||||
public void execute(final RequestMonitor requestMonitor) {
|
|
||||||
boolean clear = false;
|
|
||||||
Properties properties = new Properties();
|
|
||||||
try {
|
|
||||||
clear = fGDBBackend.getClearEnvironment();
|
|
||||||
properties = fGDBBackend.getEnvironmentVariables();
|
|
||||||
} catch (CoreException e) {
|
|
||||||
requestMonitor.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, -1, "Cannot get environment information", e)); //$NON-NLS-1$
|
|
||||||
requestMonitor.done();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (clear == true || properties.size() > 0) {
|
|
||||||
fCommandControl.setEnvironment(properties, clear, requestMonitor);
|
|
||||||
} else {
|
|
||||||
requestMonitor.done();
|
|
||||||
}
|
|
||||||
}},
|
|
||||||
/*
|
/*
|
||||||
* Enable non-stop mode if necessary
|
* Enable non-stop mode if necessary
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue