diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index c24de18af3766eabf10348aa49ed9f6140bb8598..502c96e3eda772e2b35b1e8399c4d79dcbdc922a 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1930,9 +1930,18 @@ void GdbEngine::executeRunToLine(const QString &fileName, int lineNumber) setTokenBarrier(); setState(InferiorRunningRequested); showStatusMessage(tr("Run to line %1 requested...").arg(lineNumber), 5000); +#if 1 + QByteArray loc = '"' + breakLocation(fileName).toLocal8Bit() + '"' + ':' + + QByteArray::number(lineNumber); + postCommand("tbreak " + loc); + postCommand("continue", RunRequest); +#else + // Seems to jump to unpredicatable places. Observed in the manual + // tests in the Foo::Foo() constructor with both gdb 6.8 and 7.1. QByteArray args = '"' + breakLocation(fileName).toLocal8Bit() + '"' + ':' + QByteArray::number(lineNumber); postCommand("-exec-until " + args, RunRequest, CB(handleExecuteContinue)); +#endif } void GdbEngine::executeRunToFunction(const QString &functionName)