diff --git a/share/qtcreator/gdbmacros/test/main.cpp b/share/qtcreator/gdbmacros/test/main.cpp index 2696b32f12a031d34f824bf16d2f3f33998e93d2..b6be579ab383600ca0a736321568c5e75008035d 100644 --- a/share/qtcreator/gdbmacros/test/main.cpp +++ b/share/qtcreator/gdbmacros/test/main.cpp @@ -33,6 +33,7 @@ #include <QtCore/QSharedPointer> #include <QtCore/QTimer> #include <QtCore/QMap> +#include <QtCore/QSet> #include <QtCore/QVariant> #include <QtGui/QAction> @@ -159,6 +160,16 @@ static int dumpQIntVector() return 0; } +static int dumpQQStringVector() +{ + QVector<QString> test = QVector<QString>() << "42s" << "43s"; + prepareInBuffer("QVector", "local.qstringvector", "local.qstringvector", "QString"); + qDumpObjectData440(2, 42, testAddress(&test), 1, sizeof(QString), 0, 0, 0); + fputs(qDumpOutBuffer, stdout); + fputc('\n', stdout); + return 0; +} + static int dumpQMapIntInt() { QMap<int,int> test; @@ -187,6 +198,19 @@ static int dumpQMapIntString() return 0; } +static int dumpQSetInt() +{ + QSet<int> test; + test.insert(42); + test.insert(43); + prepareInBuffer("QSet", "local.qsetint", "local.qsetint", "int"); + qDumpObjectData440(2, 42, testAddress(&test), 1, sizeof(int), 0, 0, 0); + fputs(qDumpOutBuffer, stdout); + fputc('\n', stdout); + return 0; +} + + static int dumpQMapQStringString() { QMap<QString,QString> test; @@ -445,9 +469,11 @@ static TypeDumpFunctionMap registerTypes() rc.insert("QLinkedList<int>", dumpQIntLinkedList); rc.insert("QList<std::string>", dumpStdStringQList); rc.insert("QVector<int>", dumpQIntVector); + rc.insert("QVector<QString>", dumpQQStringVector); rc.insert("QMap<int,QString>", dumpQMapIntString); rc.insert("QMap<QString,QString>", dumpQMapQStringString); rc.insert("QMap<int,int>", dumpQMapIntInt); + rc.insert("QSet<int>", dumpQSetInt); rc.insert("string", dumpStdString); rc.insert("wstring", dumpStdWString); rc.insert("list<int>", dumpStdIntList); diff --git a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp index ee941972cb00119f854eabd1a775da74b23e5272..f58f1f745272a9912e89d72b23cf473b4e2e997f 100644 --- a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp +++ b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp @@ -595,9 +595,9 @@ bool CdbSymbolGroupContext::debugValueToInteger(const DEBUG_VALUE &dv, qint64 *v * To add further types, have a look at the toString() output of the * symbol group. */ -static QString msgStructuralError(const QString &type, int code) +static QString msgStructuralError(const QString &name, const QString &type, int code) { - return QString::fromLatin1("Warning: Internal dumper for '%1' failed with %2.").arg(type).arg(code); + return QString::fromLatin1("Warning: Internal dumper for '%1' (%2) failed with %3.").arg(name, type).arg(code); } static inline bool isStdStringOrPointer(const QString &type) @@ -631,7 +631,7 @@ CdbSymbolGroupContext::DumperResult rc = DumperError; break; default: - qWarning("%s\n", qPrintable(msgStructuralError(wd->type, drc))); + qWarning("%s\n", qPrintable(msgStructuralError(wd->iname, wd->type, drc))); rc = DumperNotHandled; break; } @@ -647,7 +647,7 @@ CdbSymbolGroupContext::DumperResult rc = DumperError; break; default: - qWarning("%s\n", qPrintable(msgStructuralError(wd->type, drc))); + qWarning("%s\n", qPrintable(msgStructuralError(wd->iname, wd->type, drc))); rc = DumperNotHandled; break; }