From fbbac7d38aa563ac6409ade9a5209892b8d57941 Mon Sep 17 00:00:00 2001 From: Zhang TingAn Date: Wed, 24 Jul 2024 14:20:55 +0800 Subject: [PATCH] fix: [run] incorret arguments when run/debug application Log: as title --- src/plugins/cxx/cmake/cmakegenerator.cpp | 1 + src/plugins/cxx/cmake/project/properties/configutil.cpp | 2 +- src/tools/debugadapter/dapsession.cpp | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/cxx/cmake/cmakegenerator.cpp b/src/plugins/cxx/cmake/cmakegenerator.cpp index 46215e8bd..9742075b1 100644 --- a/src/plugins/cxx/cmake/cmakegenerator.cpp +++ b/src/plugins/cxx/cmake/cmakegenerator.cpp @@ -91,6 +91,7 @@ QMap CMakeGenerator::getDebugArguments(const dpfservice::Proj QMap param; param.insert("workspace", projectInfo.runWorkspaceDir()); param.insert("targetPath", projectInfo.runProgram()); + param.insert("arguments", projectInfo.runCustomArgs()); return param; } diff --git a/src/plugins/cxx/cmake/project/properties/configutil.cpp b/src/plugins/cxx/cmake/project/properties/configutil.cpp index 22ecc986d..d7e3856d7 100644 --- a/src/plugins/cxx/cmake/project/properties/configutil.cpp +++ b/src/plugins/cxx/cmake/project/properties/configutil.cpp @@ -236,7 +236,7 @@ bool ConfigUtil::updateProjectInfo(dpfservice::ProjectInfo &info, const ProjectC info.setRunProgram(iterRun->targetPath); QStringList arguments; if (!iterRun->arguments.isEmpty()) - arguments << iterRun->arguments; + arguments = iterRun->arguments.split(" ", QString::SkipEmptyParts); info.setRunCustomArgs(arguments); info.setRunWorkspaceDir(iterRun->workDirectory); info.setCurrentProgram(iterRun->targetName); diff --git a/src/tools/debugadapter/dapsession.cpp b/src/tools/debugadapter/dapsession.cpp index 3d7b9a79a..1607d6863 100644 --- a/src/tools/debugadapter/dapsession.cpp +++ b/src/tools/debugadapter/dapsession.cpp @@ -342,6 +342,7 @@ void DapSession::registerHanlder() QStringList arguments; arguments.push_back(request.program.value().c_str()); if (request.args.has_value()) { + arguments.insert(0, "--args"); foreach(auto arg, request.args.value()) { arguments.push_back(arg.c_str()); }