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; }