forked from qt-creator/qt-creator
Debugger: defer type resolve again for the cdb debugger backend
Task-number: QTCREATORBUG-29833 Change-Id: I671359f84d3f4d78d051f6a087776ceab7d7460d Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -172,15 +172,17 @@ class Dumper(DumperBase):
|
||||
self.type_name_cache[typeid] = nativeType.name()
|
||||
self.type_code_cache[typeid] = code
|
||||
self.type_target_cache[typeid] = self.typeid_for_string(targetName)
|
||||
self.type_size_cache[typeid] = nativeType.bitsize() // 8
|
||||
if nativeType.resolved():
|
||||
self.type_size_cache[typeid] = nativeType.bitsize() // 8
|
||||
return typeid
|
||||
|
||||
code = TypeCode.Struct
|
||||
|
||||
self.type_name_cache[typeid] = nativeType.name()
|
||||
self.type_size_cache[typeid] = nativeType.bitsize() // 8
|
||||
if nativeType.resolved():
|
||||
self.type_size_cache[typeid] = nativeType.bitsize() // 8
|
||||
self.type_modulename_cache[typeid] = nativeType.module()
|
||||
self.type_code_cache[typeid] = code
|
||||
self.type_modulename_cache[typeid] = nativeType.module()
|
||||
self.type_enum_display_cache[typeid] = lambda intval, addr, form: \
|
||||
self.nativeTypeEnumDisplay(nativeType, intval, form)
|
||||
return typeid
|
||||
@@ -549,7 +551,6 @@ class Dumper(DumperBase):
|
||||
return
|
||||
|
||||
self.putAddress(value.address())
|
||||
self.putField('size', self.type_size(value.typeid))
|
||||
|
||||
if typeobj.code == TypeCode.Function:
|
||||
#DumperBase.warn('FUNCTION VALUE: %s' % value)
|
||||
|
@@ -2446,7 +2446,7 @@ typename))
|
||||
self.checkIntType(base)
|
||||
self.checkIntType(n)
|
||||
inner_typeid = self.typeid_for_typish(inner_typish)
|
||||
inner_size = self.type_size_cache.get(inner_typeid, None)
|
||||
inner_size = self.type_size(inner_typeid)
|
||||
self.putNumChild(n)
|
||||
#self.warn('ADDRESS: 0x%x INNERSIZE: %s INNERTYPE: %s' % (base, inner_size, inner_typeid))
|
||||
enc = self.type_encoding_cache.get(inner_typeid, None)
|
||||
@@ -3565,7 +3565,9 @@ typename))
|
||||
return target_typeid
|
||||
self.type_code_cache[typeid] = TypeCode.Typedef
|
||||
self.type_target_cache[typeid] = target_typeid
|
||||
self.type_size_cache[typeid] = self.type_size_cache.get(target_typeid, None)
|
||||
size = self.type_size_cache.get(target_typeid, None)
|
||||
if size is not None:
|
||||
self.type_size_cache[typeid] = size
|
||||
return typeid
|
||||
|
||||
def createType(self, typish, size=None):
|
||||
@@ -3711,7 +3713,7 @@ typename))
|
||||
|
||||
typeid = self.cheap_typeid_from_name_nons(typename)
|
||||
if typeid:
|
||||
size = self.type_size_cache.get(typeid, None)
|
||||
size = self.type_size(typeid)
|
||||
if size is not None:
|
||||
return size, typeid
|
||||
|
||||
@@ -3719,7 +3721,7 @@ typename))
|
||||
self.warn("LOOKUP FIELD TYPE: %s TYPEOBJ: %s" % (typename, typeobj))
|
||||
if typeobj is not None:
|
||||
typeid = typeobj.typeid
|
||||
size = self.type_size_cache.get(typeid, None)
|
||||
size = self.type_size(typeid)
|
||||
if size is not None:
|
||||
return size, typeid
|
||||
|
||||
@@ -3950,8 +3952,10 @@ typename))
|
||||
if size is not None:
|
||||
return size
|
||||
|
||||
if size is None:
|
||||
nativeType = self.type_nativetype(typeid)
|
||||
nativeType = self.type_nativetype(typeid)
|
||||
if self.isCdb:
|
||||
size = nativeType.bitsize() // 8
|
||||
else:
|
||||
if not self.type_size_cache.get(typeid):
|
||||
self.from_native_type(nativeType)
|
||||
size = self.type_size_cache.get(typeid, None)
|
||||
|
Reference in New Issue
Block a user