diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index c9c49200846b50de4d150ba71bba6d1f912ce971..153519b52bec6d30dbab6903e786459b41c7dba5 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -3004,6 +3004,11 @@ unsigned CdbEngine::parseStackTrace(const GdbMi &data, bool sourceStepInto)
         }
         if (hasFile) {
             const NormalizedSourceFileName fileName = sourceMapNormalizeFileNameFromDebugger(frames.at(i).file);
+            if (!fileName.exists && i == 0 && sourceStepInto) {
+                showMessage(QString::fromLatin1("Step into: Hit frame with no source, "
+                                                "step out..."), LogMisc);
+                return ParseStackStepOut;
+            }
             frames[i].file = fileName.fileName;
             frames[i].usable = fileName.exists;
             if (current == -1 && frames[i].usable)