diff --git a/src/plugins/debugger/debuggeritem.cpp b/src/plugins/debugger/debuggeritem.cpp
index 0768d2ecdd67d2a549a22fbbb80daa761fce26a5..2c9ae64f3783a86a91c8984a2c1f6c0422aa1cc0 100644
--- a/src/plugins/debugger/debuggeritem.cpp
+++ b/src/plugins/debugger/debuggeritem.cpp
@@ -88,8 +88,10 @@ void DebuggerItem::reinitializeFromFile()
 {
     QProcess proc;
     proc.start(m_command.toString(), QStringList() << QLatin1String("--version"));
-    proc.waitForStarted();
-    proc.waitForFinished();
+    if (!proc.waitForStarted() || !proc.waitForFinished()) {
+        m_engineType = NoEngineType;
+        return;
+    }
     QByteArray ba = proc.readAll();
     if (ba.contains("gdb")) {
         m_engineType = GdbEngineType;
@@ -120,6 +122,19 @@ void DebuggerItem::reinitializeFromFile()
         m_engineType = PdbEngineType;
         return;
     }
+    if (ba.isEmpty()) {
+        proc.start(m_command.toString(), QStringList() << QLatin1String("-version"));
+        if (!proc.waitForStarted() || !proc.waitForFinished()) {
+            m_engineType = NoEngineType;
+            return;
+        }
+        ba = proc.readAll();
+        if (ba.startsWith("cdb")) {
+            m_engineType = CdbEngineType;
+            m_abis = Abi::abisOfBinary(m_command);
+            return;
+        }
+    }
     m_engineType = NoEngineType;
 }