diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp index aa75fd65d59e4270dc82faae5a2f60a5c523df80..b9e1c83135e38b6ebea8fa78312f176c00ce1165 100644 --- a/src/plugins/debugger/gdb/classicgdbengine.cpp +++ b/src/plugins/debugger/gdb/classicgdbengine.cpp @@ -174,7 +174,8 @@ void GdbEngine::runDebuggingHelperClassic(const WatchData &data0, bool dumpChild QByteArray params; QList<QByteArray> extraArgs; const QtDumperHelper::TypeData td = m_dumperHelper.typeData(data0.type); - m_dumperHelper.evaluationParameters(data, td, QtDumperHelper::GdbDebugger, ¶ms, &extraArgs); + m_dumperHelper.evaluationParameters(data, td, QtDumperHelper::GdbDebugger, + ¶ms, &extraArgs); //int protocol = (data.iname.startsWith("watch") && data.type == "QImage") ? 3 : 2; //int protocol = data.iname.startsWith("watch") ? 3 : 2; @@ -198,7 +199,7 @@ void GdbEngine::runDebuggingHelperClassic(const WatchData &data0, bool dumpChild + ',' + (dumpChildren ? '1' : '0'); foreach (const QByteArray &ex, extraArgs) - cmd + ',' + ex; + cmd += ',' + ex; cmd += ')'; postCommand(cmd, WatchUpdate | NonCriticalResponse); diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp index 48271203192ac6a9aa67e0507da47656c8cbb40f..435deb9e13187284ae24e22635f504ceb1c590e9 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -1156,10 +1156,8 @@ static inline bool isInteger(const QString &n) } void QtDumperHelper::evaluationParameters(const WatchData &data, - const TypeData &td, - Debugger debugger, - QByteArray *inBuffer, - QByteArrayList *extraArgsIn) const + const TypeData &td, Debugger debugger, + QByteArray *inBuffer, QByteArrayList *extraArgsIn) const { enum { maxExtraArgCount = 4 }; @@ -1189,10 +1187,9 @@ void QtDumperHelper::evaluationParameters(const WatchData &data, for (int i = 0; i < count; i++) extraArgs.push_back(evaluationSizeofTypeExpression(inners.at(i), debugger)); } - int extraArgCount = extraArgs.size(); + // Pad with zeros - const int extraPad = maxExtraArgCount - extraArgCount; - for (int i = 0; i < extraPad; i++) + while (extraArgs.size() < maxExtraArgCount) extraArgs.push_back("0"); // in rare cases we need more or less: