diff options
author | David Schulz <david.schulz@qt.io> | 2019-08-28 09:32:55 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2019-09-02 11:09:02 +0000 |
commit | e6190babdbb2f5d9ea2ef6e5fcf6e7ad00c91847 (patch) | |
tree | a51259cae8fe22fac353eeedfa2503c5dddf8b9b | |
parent | 9af2563a69cf713fe68e51cfdf6a10287e58f662 (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.cpp | 13 |
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()); } } |