summaryrefslogtreecommitdiff
path: root/src/libs/qtcreatorcdbext/symbolgroupvalue.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-08-02 13:32:37 +0200
committerhjk <qthjk@ovi.com>2012-08-02 13:43:28 +0200
commitb5abaa27df4c8ebd08eeaab063e3c63f29ae9ca3 (patch)
treedf519fce62be31360606d5a495d7f0254e53994d /src/libs/qtcreatorcdbext/symbolgroupvalue.h
parentc45ae0e2886087520400ab030232a7111ee27dc0 (diff)
downloadqt-creator-b5abaa27df4c8ebd08eeaab063e3c63f29ae9ca3.tar.gz
CDB: Fix STL debugger helpers for MSVC2012 beta.
In MSVC2012, more bases classes for std::string and containers were introduced whereas std::pair_base was removed compared to MSVC2010. Add a findMember() function to be able to skip base classes when looking for a certain member to finally fix this issue. Introduce SymbolGroupValue::parent()/childCount() and simplify the helpers using it. Change-Id: I7a6aad5c07739ca9cbf350489acd6d03bd1865e8 Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/libs/qtcreatorcdbext/symbolgroupvalue.h')
-rw-r--r--src/libs/qtcreatorcdbext/symbolgroupvalue.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.h b/src/libs/qtcreatorcdbext/symbolgroupvalue.h
index 128887d179..0de08217f4 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupvalue.h
+++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.h
@@ -68,11 +68,17 @@ public:
// Access children by name or index (0-based)
SymbolGroupValue operator[](const char *name) const;
SymbolGroupValue operator[](unsigned) const;
+ unsigned childCount() const;
+ SymbolGroupValue parent() const;
// take address and cast to desired (pointer) type
SymbolGroupValue typeCast(const char *type) const;
// take pointer value and cast to desired (pointer) type
SymbolGroupValue pointerTypeCast(const char *type) const;
-
+ // Find a member variable traversing the list of base classes. This useful
+ // for skipping template base classes of STL containers whose number varies
+ // by MSVC version.
+ static SymbolGroupValue findMember(const SymbolGroupValue &start,
+ const std::string &symbolName);
std::string name() const;
std::string type() const;
std::vector<std::string> innerTypes() const { return innerTypesOf(type()); }