summaryrefslogtreecommitdiff
path: root/src/libs/qtcreatorcdbext/symbolgroupvalue.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-12-10 17:17:55 +0100
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-12-10 17:17:55 +0100
commitd3619e806d6ee61a9457057b924d607876b87abb (patch)
tree8f6b2c15a70e6ce5826d566ce830165fecf269ad /src/libs/qtcreatorcdbext/symbolgroupvalue.h
parentddf360d4a9718ae5a80f4a266515a76348198d3c (diff)
downloadqt-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.h10
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);