From 3ee8be9a549bf6baf0bb338a24e5bd9171fc5200 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Thu, 14 Dec 2023 11:42:14 +0100 Subject: [PATCH] DAP: Fix Python debug breakpoints Note: IgnoreCount works differently in Python engine, this needs futher investigation. Change-Id: I6bfbd444267810df7c807c2193dd445f6dbc3865 Reviewed-by: David Schulz --- src/plugins/debugger/dap/dapengine.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index 62025cb926f..e2530ffa4ce 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -309,6 +309,14 @@ bool DapEngine::acceptsBreakpoint(const BreakpointParameters &) const return true; } +static void setBreakpointParameters(QJsonObject &bp, const QString &condition, int ignoreCount) +{ + if (!condition.isEmpty()) + bp["condition"] = condition; + if (ignoreCount > 0) + bp["hitCondition"] = QString::number(ignoreCount); +} + static QJsonObject createBreakpoint(const BreakpointParameters ¶ms) { if (params.fileName.isEmpty()) @@ -316,8 +324,7 @@ static QJsonObject createBreakpoint(const BreakpointParameters ¶ms) QJsonObject bp; bp["line"] = params.textPosition.line; - bp["condition"] = params.condition; - bp["hitCondition"] = QString::number(params.ignoreCount); + setBreakpointParameters(bp, params.condition, params.ignoreCount); return bp; } @@ -328,8 +335,7 @@ static QJsonObject createFunctionBreakpoint(const BreakpointParameters ¶ms) QJsonObject bp; bp["name"] = params.functionName; - bp["condition"] = params.condition; - bp["hitCondition"] = QString::number(params.ignoreCount); + setBreakpointParameters(bp, params.condition, params.ignoreCount); return bp; }