DAP: Fix launch of an application without run parameters

Now dap gdb debugger takes into account "Command line arguments:".

Change-Id: I5e7630a56a0851e7a0b8356129eb250bb29d5893
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Artem Sokolovskii
2023-09-29 15:46:20 +02:00
parent c6d1c962ee
commit 49b773bd25
4 changed files with 9 additions and 4 deletions

View File

@@ -58,10 +58,13 @@ void DapClient::sendInitialize()
postRequest("initialize", QJsonObject{{"clientID", "QtCreator"}, {"clientName", "QtCreator"}});
}
void DapClient::sendLaunch(const Utils::FilePath &executable)
void DapClient::sendLaunch(const Utils::CommandLine &command)
{
postRequest("launch",
QJsonObject{{"noDebug", false}, {"program", executable.path()}, {"__restart", ""}});
QJsonObject{{"noDebug", false},
{"program", command.executable().path()},
{"args", command.arguments()},
{"__restart", ""}});
}
void DapClient::sendAttach()

View File

@@ -80,7 +80,7 @@ public:
virtual void sendInitialize();
void sendLaunch(const Utils::FilePath &executable);
void sendLaunch(const Utils::CommandLine &command);
void sendAttach();
void sendConfigurationDone();

View File

@@ -195,7 +195,7 @@ void DapEngine::handleDapInitialize()
{
QTC_ASSERT(state() == EngineRunRequested, qCDebug(logCategory()) << state());
m_dapClient->sendLaunch(runParameters().inferior.command.executable());
m_dapClient->sendLaunch(runParameters().inferior.command);
qCDebug(logCategory()) << "handleDapLaunch";
}

View File

@@ -55,6 +55,8 @@ public:
void start() override
{
m_proc.setProcessMode(ProcessMode::Writer);
if (m_runParameters.debugger.workingDirectory.isDir())
m_proc.setWorkingDirectory(m_runParameters.debugger.workingDirectory);
m_proc.setEnvironment(m_runParameters.debugger.environment);
m_proc.setCommand(m_cmd);
m_proc.start();