diff options
author | hjk <qtc-committer@nokia.com> | 2009-04-16 13:54:34 +0200 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2009-04-16 14:42:45 +0200 |
commit | e2ef47bcffbab2cabed2ff80f317dddfebfd59a2 (patch) | |
tree | f92f5c0162a6ae0d17fd240bcb37be8ed2761243 | |
parent | 98c87839bdf09c3afa05cb1395b653ff4570383b (diff) |
debugger: prevent endless loop when contructor breakpoints are located
in inaccessible files
-rw-r--r-- | src/plugins/debugger/gdbengine.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index 709324378d..64d0314a30 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -2214,7 +2214,7 @@ void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointData * // 2.1 y 0x0040168e in MainWindow::MainWindow(QWidget*) at mainwindow.cpp:7 // 2.2 y 0x00401792 in MainWindow::MainWindow(QWidget*) at mainwindow.cpp:7 - + // tested in ../../../tests/auto/debugger/ QRegExp re("MULTIPLE.*(0x[0-9a-f]+) in (.*)\\s+at (.*):([\\d]+)([^\\d]|$)"); re.setMinimal(true); @@ -2223,6 +2223,10 @@ void GdbEngine::extractDataFromInfoBreak(const QString &output, BreakpointData * data->bpFuncName = re.cap(2).trimmed(); data->bpLineNumber = re.cap(4); QString full = fullName(re.cap(3)); + if (full.isEmpty()) { + qDebug() << "NO FULL NAME KNOWN FOR" << re.cap(3); + full = re.cap(3); // FIXME: wrong, but prevents recursion + } data->markerLineNumber = data->bpLineNumber.toInt(); data->markerFileName = full; data->bpFileName = full; |