From 5ec327d66df843b75a58a01c5b7d379319dceab6 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Mon, 18 Sep 2023 15:39:55 +0200 Subject: [PATCH] DAP: Fix remove breakpoint in Python engine - Added acceptsBreakpoint function needed for mixing debugger Change-Id: I6d4bc707527ce3d5e334a5332d1a806a27201d39 Reviewed-by: Reviewed-by: hjk --- src/plugins/debugger/dap/pydapengine.cpp | 31 ++++++++++++++++++++++++ src/plugins/debugger/dap/pydapengine.h | 8 +++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/dap/pydapengine.cpp b/src/plugins/debugger/dap/pydapengine.cpp index 68dea4f0551..6de21a29f46 100644 --- a/src/plugins/debugger/dap/pydapengine.cpp +++ b/src/plugins/debugger/dap/pydapengine.cpp @@ -209,6 +209,37 @@ void installDebugpyPackage(const FilePath &pythonPath) process.waitForFinished(); } +bool PyDapEngine::acceptsBreakpoint(const BreakpointParameters &bp) const +{ + return bp.fileName.endsWith(".py"); +} + +void PyDapEngine::insertBreakpoint(const Breakpoint &bp) +{ + DapEngine::insertBreakpoint(bp); + notifyBreakpointInsertOk(bp); // Needed for Python support issue:1386 +} + +void PyDapEngine::removeBreakpoint(const Breakpoint &bp) +{ + DapEngine::removeBreakpoint(bp); + notifyBreakpointRemoveOk(bp); // Needed for Python support issue:1386 +} + +void PyDapEngine::updateBreakpoint(const Breakpoint &bp) +{ + DapEngine::updateBreakpoint(bp); + + /* Needed for Python support issue:1386 */ + BreakpointParameters parameters = bp->requestedParameters(); + if (parameters.enabled != bp->isEnabled()) { + parameters.pending = false; + bp->setParameters(parameters); + } + notifyBreakpointChangeOk(bp); + /* Needed for Python support issue:1386 */ +} + bool PyDapEngine::isLocalAttachEngine() const { return runParameters().startMode == AttachToLocalProcess; diff --git a/src/plugins/debugger/dap/pydapengine.h b/src/plugins/debugger/dap/pydapengine.h index f3b14031fa4..af28b3afef7 100644 --- a/src/plugins/debugger/dap/pydapengine.h +++ b/src/plugins/debugger/dap/pydapengine.h @@ -19,7 +19,13 @@ private: void setupEngine() override; bool isLocalAttachEngine() const; - Utils::Process m_proc; + bool acceptsBreakpoint(const BreakpointParameters &bp) const override; + /* Needed for Python support issue:1386 */ + void insertBreakpoint(const Breakpoint &bp) override; + void updateBreakpoint(const Breakpoint &bp) override; + void removeBreakpoint(const Breakpoint &bp) override; + /* Needed for Python support issue:1386 */ + const QLoggingCategory &logCategory() override { static const QLoggingCategory logCategory = QLoggingCategory("qtc.dbg.dapengine.python",