cdbext: Fix dump of 64bit integer in container.

Change-Id: If782d6da5453e78b3038c6ef8edbce0718b487c7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
David Schulz
2013-04-10 05:58:53 -07:00
parent 17e8631dfb
commit a6ee961bc3

View File

@@ -77,8 +77,15 @@ static inline void dump64bitPointerArray(std::ostream &os, const void *a, int co
static inline std::string fixInnerType(std::string type,
const SymbolGroupValue &container)
{
const std::string stripped
std::string stripped
= SymbolGroupValue::stripConst(SymbolGroupValue::stripClassPrefixes(type));
// Unfortunately the cdb can not handle the vc exclusiv 64 bit integer
// "__int64" but works fine with "int64", so we have to strip down "__"
const size_t __int64pos = stripped.find("__int64");
if (__int64pos != std::string::npos)
stripped.erase(__int64pos, 2);
const KnownType kt = knownType(stripped, 0);
// Resolve types unless they are POD or pointers to POD (that is, qualify 'Foo' and 'Foo*')
const bool needResolve = kt == KT_Unknown || kt == KT_PointerType || !(kt & KT_POD_Type);