From 8fcf3a695f677baa7374e8c9aadcaa518205befd Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Tue, 8 Aug 2023 11:46:12 +0200 Subject: [PATCH] DAP: Fix windows support - Added using named pipe for windows Change-Id: I45561481d63c5dd81bda14e6ace4fb0374d1b488 Reviewed-by: Cristian Adam --- src/plugins/cmakeprojectmanager/fileapireader.cpp | 12 +++++++++--- src/plugins/debugger/dap/dapengine.cpp | 8 ++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index 8cc8fc572b1..b43c7d239ed 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -98,9 +98,15 @@ void FileApiReader::parse(bool forceCMakeRun, + m_parameters.additionalCMakeArguments) : QStringList()); if (debugging) { - FilePath file = FilePath::fromString(TemporaryDirectory::masterDirectoryPath() + "/cmake-dap.sock"); - file.removeFile(); - args << "--debugger" << "--debugger-pipe=" + file.path(); + if (TemporaryDirectory::masterDirectoryFilePath().osType() == Utils::OsType::OsTypeWindows) { + args << "--debugger" + << "--debugger-pipe \\\\.\\pipe\\cmake-dap"; + } else { + FilePath file = TemporaryDirectory::masterDirectoryFilePath() / "cmake-dap.sock"; + file.removeFile(); + args << "--debugger" + << "--debugger-pipe=" + file.path(); + } } qCDebug(cmakeFileApiMode) << "Parameters request these CMake arguments:" << args; diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index 6a8a0244dd0..2535e8daf7b 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -260,8 +260,12 @@ void DapEngine::setupEngine() if (currentPerspective->parentPerspectiveId() == Constants::CMAKE_PERSPECTIVE_ID) { qCDebug(dapEngineLog) << "build system name" << ProjectExplorer::ProjectTree::currentBuildSystem()->name(); - m_dataGenerator = std::make_unique( - TemporaryDirectory::masterDirectoryPath() + "/cmake-dap.sock"); + if (TemporaryDirectory::masterDirectoryFilePath().osType() == Utils::OsType::OsTypeWindows) { + m_dataGenerator = std::make_unique("\\\\.\\pipe\\cmake-dap"); + } else { + m_dataGenerator = std::make_unique( + TemporaryDirectory::masterDirectoryPath() + "/cmake-dap.sock"); + } connectDataGeneratorSignals(); connect(ProjectExplorer::ProjectTree::currentBuildSystem(),