From 54d2f1bb39bd6bb4336dc6d2c3bcddd7b3865ff3 Mon Sep 17 00:00:00 2001
From: David Schulz <david.schulz@digia.com>
Date: Fri, 25 Oct 2013 10:44:11 +0200
Subject: [PATCH] Debugger: Add parsing of cdb -version output to debugger
 reinitialize.

Task-number: QTCREATORBUG-10511

Change-Id: I0c2fde3aedb31a60bc553b490a97841af1746a14
Reviewed-by: hjk <hjk121@nokiamail.com>
---
 src/plugins/debugger/debuggeritem.cpp | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/plugins/debugger/debuggeritem.cpp b/src/plugins/debugger/debuggeritem.cpp
index 0768d2ecdd6..2c9ae64f378 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;
 }
 
-- 
GitLab