diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-08-02 13:32:37 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-08-02 13:43:28 +0200 |
commit | b5abaa27df4c8ebd08eeaab063e3c63f29ae9ca3 (patch) | |
tree | df519fce62be31360606d5a495d7f0254e53994d /src/libs/qtcreatorcdbext/symbolgroupvalue.h | |
parent | c45ae0e2886087520400ab030232a7111ee27dc0 (diff) | |
download | qt-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.h | 8 |
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()); } |