Debugger: Add skeleton for a debugger adapter protocol using engine

- Support the launch of an application
- Support continue/pause an application
- Support add breakpoint only after an app is launched
(I.e. preset breakpoints won't work)
- Support stop the debug session
- "Remove one break breakpoint" works but removes all breakpoints

ToDo:
- Polish the transition between stages
- Fix breakpoints handling
- Add support "Step in", "Step out" and "Step Over"

Task-number: QTCREATORBUG-27279
Change-Id: I5c32ce713f5a0f19cc3b9d995cbbadd8adf6a413
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
hjk
2023-01-03 15:12:43 +01:00
parent 45c2e3fe58
commit 46b9cd952a
9 changed files with 855 additions and 0 deletions

View File

@@ -813,6 +813,14 @@ void DebuggerItemManagerPrivate::autoDetectGdbOrLldbDebuggers(const FilePaths &s
item.setUnexpandedDisplayName(name.arg(item.engineTypeName()).arg(command.toUserOutput()));
m_model->addDebugger(item);
logMessages.append(Tr::tr("Found: \"%1\"").arg(command.toUserOutput()));
if (item.engineType() == GdbEngineType) {
if (item.version().startsWith("GNU gdb (GDB) 14.0.50.2023")) {
// FIXME: Use something more robust
item.setEngineType(DapEngineType);
m_model->addDebugger(item);
}
}
}
if (logMessage)
*logMessage = logMessages.join('\n');