diff --git a/src/plugins/debugger/debuggeritemmanager.cpp b/src/plugins/debugger/debuggeritemmanager.cpp index 7e853877503..b814199c775 100644 --- a/src/plugins/debugger/debuggeritemmanager.cpp +++ b/src/plugins/debugger/debuggeritemmanager.cpp @@ -675,6 +675,7 @@ void DebuggerItemManagerPrivate::autoDetectCdbDebuggers() item.setCommand(cdb); item.setEngineType(CdbEngineType); item.setUnexpandedDisplayName(uniqueDisplayName(tr("Auto-detected CDB at %1").arg(cdb.toUserOutput()))); + item.reinitializeFromFile(); // collect version number m_model->addDebugger(item); } } diff --git a/src/plugins/debugger/debuggerkitinformation.cpp b/src/plugins/debugger/debuggerkitinformation.cpp index c852d4a086c..3893f227688 100644 --- a/src/plugins/debugger/debuggerkitinformation.cpp +++ b/src/plugins/debugger/debuggerkitinformation.cpp @@ -233,6 +233,19 @@ void DebuggerKitAspect::setup(Kit *k) if (level > bestLevel) { bestLevel = level; bestItem = item; + } else if (level == bestLevel) { + if (item.engineType() == bestItem.engineType()) { + const QStringList itemVersion = item.version().split('.'); + const QStringList bestItemVersion = bestItem.version().split('.'); + int end = qMax(item.version().size(), bestItemVersion.size()); + for (int i = 0; i < end; ++i) { + if (itemVersion.value(i) == bestItemVersion.value(i)) + continue; + if (itemVersion.value(i).toInt() > bestItemVersion.value(i).toInt()) + bestItem = item; + break; + } + } } }