debugger: Fix dumper for std::string and unordered_multiset

Moves mac specific dumpers to separate file
Creates android dumpers for stdtypes

Change-Id: I33d28198e1a2f24fb7707313845db81e283686cd
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2022-08-04 15:40:04 +02:00
parent 84c1d6572b
commit 42e1714ea1
5 changed files with 527 additions and 313 deletions
+13 -6
View File
@@ -2953,6 +2953,8 @@ class DumperBase():
class Value():
def __init__(self, dumper):
# This can be helpful to track down from where a Value was created
#self._stack = inspect.stack()
self.dumper = dumper
self.name = None
self._type = None
@@ -3998,16 +4000,21 @@ class DumperBase():
return typeobj
raise RuntimeError('NEED TYPE, NOT %s' % type(typish))
def createValue(self, datish, typish):
def createValueFromAddressAndType(self, address, typish):
val = self.Value(self)
val._type = self.createType(typish)
#DumperBase.warn('CREATING %s AT 0x%x' % (val.type.name, datish))
val.laddress = address
if self.useDynamicType:
val._type = val.type.dynamicType(address)
return val
def createValue(self, datish, typish):
if self.isInt(datish): # Used as address.
#DumperBase.warn('CREATING %s AT 0x%x' % (val.type.name, datish))
val.laddress = datish
if self.useDynamicType:
val._type = val.type.dynamicType(datish)
return val
return self.createValueFromAddressAndType(datish, typish)
if isinstance(datish, bytes):
val = self.Value(self)
val._type = self.createType(typish)
#DumperBase.warn('CREATING %s WITH DATA %s' % (val.type.name, self.hexencode(datish)))
val.ldata = datish
val.check()