aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2019-08-28 09:32:55 +0200
committerDavid Schulz <david.schulz@qt.io>2019-09-02 11:09:02 +0000
commite6190babdbb2f5d9ea2ef6e5fcf6e7ad00c91847 (patch)
treea51259cae8fe22fac353eeedfa2503c5dddf8b9b
parent9af2563a69cf713fe68e51cfdf6a10287e58f662 (diff)
Debugger: skip child items when looking for partial variables
Change-Id: Id76f3b1009b068bf8b685d7b7a88d49d85033f03 Fixes: QTCREATORBUG-19356 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/libs/qtcreatorcdbext/pycdbextmodule.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/libs/qtcreatorcdbext/pycdbextmodule.cpp b/src/libs/qtcreatorcdbext/pycdbextmodule.cpp
index fc55076ea6..c1584587c0 100644
--- a/src/libs/qtcreatorcdbext/pycdbextmodule.cpp
+++ b/src/libs/qtcreatorcdbext/pycdbextmodule.cpp
@@ -220,12 +220,17 @@ static PyObject *cdbext_listOfLocals(PyObject *, PyObject *args) // -> [ Value ]
++currentPartialIname; // skip "local" part
ULONG symbolGroupIndex = 0;
+ ULONG childEndIndex = 0;
for (;symbolGroupIndex < scopeEnd; ++symbolGroupIndex) {
- const PyValue value(symbolGroupIndex, symbolGroup);
- if (value.name() == *currentPartialIname) {
- PyList_Append(locals, createPythonObject(value));
- return locals;
+ PyValue value(symbolGroupIndex, symbolGroup);
+ if (childEndIndex <= symbolGroupIndex) { // do not return a child value
+ if (value.name() == *currentPartialIname) {
+ PyList_Append(locals, createPythonObject(value));
+ return locals;
+ }
+ ++childEndIndex;
}
+ childEndIndex += ULONG(value.childCount());
}
}