Debugger: prefer newer debuggers on initialization

Change-Id: If8a6af6b00006eca68ddcb49f900f0135979be22
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2020-07-15 10:59:06 +02:00
parent 9b0b86297e
commit 9026dd0033
2 changed files with 14 additions and 0 deletions

View File

@@ -675,6 +675,7 @@ void DebuggerItemManagerPrivate::autoDetectCdbDebuggers()
item.setCommand(cdb); item.setCommand(cdb);
item.setEngineType(CdbEngineType); item.setEngineType(CdbEngineType);
item.setUnexpandedDisplayName(uniqueDisplayName(tr("Auto-detected CDB at %1").arg(cdb.toUserOutput()))); item.setUnexpandedDisplayName(uniqueDisplayName(tr("Auto-detected CDB at %1").arg(cdb.toUserOutput())));
item.reinitializeFromFile(); // collect version number
m_model->addDebugger(item); m_model->addDebugger(item);
} }
} }

View File

@@ -233,6 +233,19 @@ void DebuggerKitAspect::setup(Kit *k)
if (level > bestLevel) { if (level > bestLevel) {
bestLevel = level; bestLevel = level;
bestItem = item; 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;
}
}
} }
} }