From 9026dd00331bd108367e64703c67cdda3e120352 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 15 Jul 2020 10:59:06 +0200 Subject: [PATCH] Debugger: prefer newer debuggers on initialization Change-Id: If8a6af6b00006eca68ddcb49f900f0135979be22 Reviewed-by: hjk Reviewed-by: Christian Stenger --- src/plugins/debugger/debuggeritemmanager.cpp | 1 + src/plugins/debugger/debuggerkitinformation.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) 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; + } + } } }