diff --git a/src/plugins/debugger/dap/pydapengine.cpp b/src/plugins/debugger/dap/pydapengine.cpp index ef7177b3565..68dea4f0551 100644 --- a/src/plugins/debugger/dap/pydapengine.cpp +++ b/src/plugins/debugger/dap/pydapengine.cpp @@ -209,6 +209,11 @@ void installDebugpyPackage(const FilePath &pythonPath) process.waitForFinished(); } +bool PyDapEngine::isLocalAttachEngine() const +{ + return runParameters().startMode == AttachToLocalProcess; +} + void PyDapEngine::setupEngine() { QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); @@ -245,10 +250,15 @@ void PyDapEngine::setupEngine() CommandLine cmd{interpreter, {"-Xfrozen_modules=off", "-m", "debugpy", - "--listen", "127.0.0.1:5679", - "--wait-for-client", + "--listen", "127.0.0.1:5679"}}; + + if (isLocalAttachEngine()) { + cmd.addArgs({"--pid", QString::number(runParameters().attachPID.pid())}); + } else { + cmd.addArgs({"--wait-for-client", scriptFile.path(), - runParameters().inferior.workingDirectory.path()}}; + runParameters().inferior.workingDirectory.path()}); + } IDataProvider *dataProvider = new TcpSocketDataProvider(runParameters(), cmd, "127.0.0.1", 5679, this); diff --git a/src/plugins/debugger/dap/pydapengine.h b/src/plugins/debugger/dap/pydapengine.h index 406654919fd..f3b14031fa4 100644 --- a/src/plugins/debugger/dap/pydapengine.h +++ b/src/plugins/debugger/dap/pydapengine.h @@ -17,8 +17,9 @@ private: void quitDebugger() override; void setupEngine() override; - Utils::Process m_proc; + bool isLocalAttachEngine() const; + Utils::Process m_proc; const QLoggingCategory &logCategory() override { static const QLoggingCategory logCategory = QLoggingCategory("qtc.dbg.dapengine.python",