diff options
Diffstat (limited to 'share/qtcreator/gdbmacros/gdbmacros.cpp')
-rw-r--r-- | share/qtcreator/gdbmacros/gdbmacros.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp index b93bb69a4a..9a92062d24 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.cpp +++ b/share/qtcreator/gdbmacros/gdbmacros.cpp @@ -2744,6 +2744,9 @@ static void qDumpQTextCodec(QDumper &d) static void qDumpQVector(QDumper &d) { + QVectorTypedData<int> *dummy = 0; + const unsigned typeddatasize = (char*)(&dummy->array) - (char*)dummy; + QVectorData *v = *reinterpret_cast<QVectorData *const*>(d.data); // Try to provoke segfaults early to prevent the frontend @@ -2756,8 +2759,7 @@ static void qDumpQVector(QDumper &d) //qCheckAccess(&vec.back()); } - unsigned innersize = d.extraInt[0]; - unsigned typeddatasize = d.extraInt[1]; + const unsigned innersize = d.extraInt[0]; int n = nn; d.putItemCount("value", n); @@ -3348,7 +3350,8 @@ void *watchPoint(int x, int y) } #endif -// Helper to write out common expression values for CDB: +// Helpers to write out common expression values for CDB +#ifdef Q_CC_MSVC // Offsets of a map node value which looks like // "(size_t)&(('QMapNode<QString,QString >'*)0)->value")" in gdb syntax @@ -3394,6 +3397,8 @@ template <class Key, class Value> return d; } +#endif // Q_CC_MSVC + extern "C" Q_DECL_EXPORT void *qDumpObjectData440( int protocolVersion, @@ -3515,6 +3520,7 @@ void *qDumpObjectData440( .put(NS"QMapNode<"NS"QString,"NS"QVariant>=\"").put(sizeof(QMapNode<QString, QVariant>)) .put("\"}"); // Write out common expression values for CDB +#ifdef Q_CC_MSVC d.put(",expressions={"); putQMapNodeOffsetExpression<int,int>("int", "int", d).put(','); putQMapNodeOffsetExpression<int,QString>("int", NS"QString", d).put(','); @@ -3534,6 +3540,7 @@ void *qDumpObjectData440( putStdPairValueOffsetExpression<int,std::wstring>("int", stdWideStringTypeUShortC, d).put(','); putStdPairValueOffsetExpression<std::wstring,int>(stdWideStringTypeUShortC, "int", d); d.put('}'); +#endif // Q_CC_MSVC d.disarm(); } |