diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 709324378d65d1248525a5ce38e8fc40079aaa5d..64d0314a30bb7eb0fd52d85fac9ccdfa67c1e6ec 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;