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>
This commit is contained in:
Friedemann Kleint
2012-08-02 13:32:37 +02:00
committed by hjk
parent c45ae0e288
commit b5abaa27df
4 changed files with 113 additions and 102 deletions

View File

@@ -386,7 +386,7 @@ DumpParameters::checkRecode(const std::string &type,
DumpParameterRecodeResult result;
if (SymbolGroupValue::verbose > 2) {
DebugPrint debugPrint;
debugPrint << '>' << __FUNCTION__ << ' ' << iname << '/' << iname;
debugPrint << '>' << __FUNCTION__ << ' ' << iname << '/' << type;
if (dp)
debugPrint << " option format: " << dp->format(type, iname);
}
@@ -472,6 +472,9 @@ DumpParameters::checkRecode(const std::string &type,
ULONG obtained = 0;
if (FAILED(ctx.dataspaces->ReadVirtual(address, result.buffer, ULONG(result.size), &obtained))) {
delete [] result.buffer;
DebugPrint() << __FUNCTION__ << " ReadVirtual() failed to read "
<< result.size << " bytes from 0x" << std::hex
<< address << std::dec << " for " << iname << '.';
result = DumpParameterRecodeResult();
}
if (SymbolGroupValue::verbose > 2)