diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-12-10 17:17:55 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-12-10 17:17:55 +0100 |
commit | d3619e806d6ee61a9457057b924d607876b87abb (patch) | |
tree | 8f6b2c15a70e6ce5826d566ce830165fecf269ad /src/libs/qtcreatorcdbext/symbolgroupvalue.h | |
parent | ddf360d4a9718ae5a80f4a266515a76348198d3c (diff) | |
download | qt-creator-d3619e806d6ee61a9457057b924d607876b87abb.tar.gz |
Debugger[New CDB]: First stab at containers.
Set up infrastructure for having 'fake' children in a symbolgroup
that merely reference others. Print inames correctly, do index
bookkeeping accordingly, adapt visitor.
Prototypically implement complex dumpers for array-type containers.
adding children as additional symbols.
Diffstat (limited to 'src/libs/qtcreatorcdbext/symbolgroupvalue.h')
-rw-r--r-- | src/libs/qtcreatorcdbext/symbolgroupvalue.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.h b/src/libs/qtcreatorcdbext/symbolgroupvalue.h index 107f3f89e5..365c2455cb 100644 --- a/src/libs/qtcreatorcdbext/symbolgroupvalue.h +++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.h @@ -33,6 +33,7 @@ #include "common.h" #include <string> +#include <vector> class SymbolGroupNode; @@ -67,6 +68,7 @@ public: SymbolGroupValue pointerTypeCast(const char *type) const; std::string type() const; + std::vector<std::string> innerTypes() const { return innerTypesOf(type()); } std::wstring value() const; unsigned size() const; @@ -83,6 +85,9 @@ public: static inline unsigned sizeOf(const char *type) { return GetTypeSize(type); } static std::string stripPointerType(const std::string &); + static std::string stripArrayType(const std::string &); + // get the inner types: "QMap<int, double>" -> "int", "double" + static std::vector<std::string> innerTypesOf(const std::string &t); private: bool ensureExpanded() const; @@ -143,7 +148,10 @@ KnownType knownType(const std::string &type); // Dump builtin simple types using SymbolGroupValue expressions, // returning SymbolGroupNode dumper flags. -unsigned dumpSimpleType(SymbolGroupNode *n, const SymbolGroupValueContext &ctx, std::wstring *s); +unsigned dumpSimpleType(SymbolGroupNode *n, const SymbolGroupValueContext &ctx, + std::wstring *s, + int *knownType = 0, + int *containerSizeIn = 0); // Return size of container or -1 int containerSize(KnownType ct, const SymbolGroupValue &v); |