diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java index e5241f20a97..c7e9a25de56 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java @@ -1514,18 +1514,21 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo } } - /** - * See bug232415 - * - * @param path the absolute path to the source file - * @return - */ - private String adjustDebuggerPath(String path) { + /** + * See bug 232415 + * + * @param path + * the absolute path to the source file + * @return the simple filename if running on Windows and [path] is not an + * absolute UNIX one. Otherwise, [path] is returned + */ + static String adjustDebuggerPath(String path) { String result = path; // Make it MinGW-specific if (Platform.getOS().startsWith("win")) { //$NON-NLS-1$ if (!path.startsWith("/")) { //$NON-NLS-1$ - result = path.substring(path.lastIndexOf('\\') + 1); + path = path.replace('\\', '/'); + result = path.substring(path.lastIndexOf('/') + 1); } } return result; diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java index e5e410b2310..54dd496ef14 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java @@ -1119,6 +1119,10 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I */ public void runToLine(IExecutionDMContext context, String sourceFile, int lineNumber, boolean skipBreakpoints, RequestMonitor rm) { + + // Hack around a MinGW bug; see 196154 + sourceFile = MIBreakpointsManager.adjustDebuggerPath(sourceFile); + runToLocation(context, sourceFile + ":" + Integer.toString(lineNumber), skipBreakpoints, rm); //$NON-NLS-1$ }