1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 445360 - Restore calling of old methods in case they are overridden

Change-Id: I4cdf35a09a7f15dba2213d7c881c6d3975ff2840
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/34578
Tested-by: Hudson CI
Reviewed-by: Teodor Madan <teodor.madan@freescale.com>
Tested-by: Teodor Madan <teodor.madan@freescale.com>
Reviewed-by: Elena Laskavaia <elaskavaia.cdt@gmail.com>
This commit is contained in:
Marc Khouzam 2014-10-08 13:28:06 -04:00
parent 3ac977929a
commit 7fda3c26d0

View file

@ -372,7 +372,14 @@ public class GDBBackend extends AbstractDsfService implements IGDBBackend, IMIBa
IGDBLaunchConfigurationConstants.ATTR_DEBUGGER_UPDATE_THREADLIST_ON_SUSPEND,
IGDBLaunchConfigurationConstants.DEBUGGER_UPDATE_THREADLIST_ON_SUSPEND_DEFAULT);
}
private Process launchGDBProcess() throws CoreException {
// Keep calling deprecated getGDBCommandLine() in case it was overridden
String command = getGDBCommandLine();
// Keep calling deprecated launchGDBProcess(String) in case it was overridden
return launchGDBProcess(command);
}
/**
* Launch GDB process.
* Allow subclass to override.
@ -380,15 +387,25 @@ public class GDBBackend extends AbstractDsfService implements IGDBBackend, IMIBa
*/
@Deprecated
protected Process launchGDBProcess(String commandLine) throws CoreException {
Process proc = null;
try {
proc = ProcessFactory.getFactory().exec(commandLine, LaunchUtils.getLaunchEnvironment(fLaunchConfiguration));
} catch (IOException e) {
String message = "Error while launching command " + commandLine; //$NON-NLS-1$
throw new CoreException(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, -1, message, e));
}
return proc;
// Backwards-compatibility check
// If the commandLine parameter is not the same as the command line array we provide
// it implies that the commandLine was modified by an extender and should be used as
// is. If it is the same, we can use the command line array instead using the more robust
// non-deprecated call to launchGDBProcess.
String unmodifiedCmdLine = StringUtil.join(getGDBCommandLineArray(), " ").trim(); //$NON-NLS-1$
if (unmodifiedCmdLine.equals(commandLine.trim()) == false) {
Process proc = null;
try {
proc = ProcessFactory.getFactory().exec(commandLine, LaunchUtils.getLaunchEnvironment(fLaunchConfiguration));
} catch (IOException e) {
String message = "Error while launching command " + commandLine; //$NON-NLS-1$
throw new CoreException(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, -1, message, e));
}
return proc;
}
// End of Backwards-compatibility check
return launchGDBProcess(getGDBCommandLineArray());
}
/**
@ -573,10 +590,8 @@ public class GDBBackend extends AbstractDsfService implements IGDBBackend, IMIBa
return Status.OK_STATUS;
}
String[] commandLine = getGDBCommandLineArray();
try {
fProcess = launchGDBProcess(commandLine);
fProcess = launchGDBProcess();
// Need to do this on the executor for thread-safety
getExecutor().submit(
new DsfRunnable() {