diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index cc3296357e707d3dd9e351a5e0200eb1cae59e04..d548e5b730947b827aa30c3996b56229dc50e66c 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3257,23 +3257,13 @@ void GdbEngine::handleVarCreate(const GdbResponse &response) if (response.resultClass == GdbResultDone) { data.variable = data.iname; setWatchDataType(data, response.data.findChild("type")); - if (hasDebuggingHelperForType(data.type)) { - // we do not trust gdb if we have a custom dumper - if (response.data.findChild("children").isValid()) - data.setChildrenUnneeded(); - else if (manager()->watchHandler()->isExpandedIName(data.iname)) - data.setChildrenNeeded(); - insertData(data); - } else { - if (response.data.findChild("children").isValid()) - data.setChildrenUnneeded(); - else if (manager()->watchHandler()->isExpandedIName(data.iname)) - data.setChildrenNeeded(); - setWatchDataChildCount(data, response.data.findChild("numchild")); - //if (data.isValueNeeded() && data.childCount > 0) - // data.setValue(QString()); - insertData(data); - } + if (manager()->watchHandler()->isExpandedIName(data.iname) + && !response.data.findChild("children").isValid()) + data.setChildrenNeeded(); + else + data.setChildrenUnneeded(); + setWatchDataChildCount(data, response.data.findChild("numchild")); + insertData(data); } else { data.setError(QString::fromLocal8Bit(response.data.findChild("msg").data())); if (data.isWatcher()) { @@ -3718,7 +3708,8 @@ void GdbEngine::insertData(const WatchData &data0) void GdbEngine::handleVarListChildrenHelper(const GdbMi &item, const WatchData &parent) { - //qDebug() << "VAR_LIST_CHILDREN: APPENDEE" << data.toString(); + //qDebug() << "VAR_LIST_CHILDREN: PARENT" << parent.toString(); + //qDebug() << "VAR_LIST_CHILDREN: ITEM" << item.toString(); QByteArray exp = item.findChild("exp").data(); QByteArray name = item.findChild("name").data(); if (isAccessSpecifier(_(exp))) {