From 717ae824ce21036e3ebc9a8a7f01ba8c90429eb3 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Fri, 10 Jul 2009 09:48:51 +0200 Subject: [PATCH] debugger: fix regression in QVector dumper Was broken due to a change in the QVector implementation (See 343e848abc1 and a07385de156 in Qt master) --- src/plugins/debugger/watchutils.cpp | 13 +++++++------ tests/manual/gdbdebugger/simple/app.cpp | 5 ++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp index b82d54e75e1..83486e899e9 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -1338,12 +1338,13 @@ void QtDumperHelper::evaluationParameters(const WatchData &data, case QAbstractItemType: inner = data.addr.mid(1); break; - case QVectorType: - extraArgs[1] = QLatin1String("(char*)&(("); - extraArgs[1] += data.exp; - extraArgs[1] += QLatin1String(").d->array)-(char*)"); - extraArgs[1] += data.exp; - extraArgs[1] += QLatin1String(".d"); + case QVectorType: + if (m_qtVersion >= 0x040600) + extraArgs[1] = QString("(char*)&((%1).p->array)-(char*)((%2).p)") + .arg(data.exp).arg(data.exp); + else + extraArgs[1] = QString("(char*)&((%1).d->array)-(char*)((%2).d)") + .arg(data.exp).arg(data.exp); break; case QObjectSlotType: case QObjectSignalType: { diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp index c230f2733fb..ff3feca27a2 100644 --- a/tests/manual/gdbdebugger/simple/app.cpp +++ b/tests/manual/gdbdebugger/simple/app.cpp @@ -616,6 +616,10 @@ void testStdDeque() void testStdList() { + std::list<int> big; + for (int i = 0; i < 10000; ++i) + big.push_back(i); + std::list<int *> plist1; plist1.push_back(new int(1)); plist1.push_back(0); @@ -977,7 +981,6 @@ void testQVector() QVector<Foo> flist; flist.append(1); - flist.append(2); flist.append(3); flist.append(4); -- GitLab