diff options
author | hjk <hjk@qt.io> | 2020-12-04 15:01:29 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-12-10 08:52:49 +0000 |
commit | 276c0ae4825e3d40c9243fd879db8ea5c8262936 (patch) | |
tree | b29162319eeff918a578545bf499e3d07febea50 /share | |
parent | 34dfbe73b6eb8eab17eabf73d7ab9d563825df7a (diff) |
Debugger: Adapt QStandardItemDumper to Qt6
Task-number: QTCREATORBUG-24098
Change-Id: I1c21e6a1ee3db3532029638eedfcf58eead53424
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/debugger/dumper.py | 5 | ||||
-rw-r--r-- | share/qtcreator/debugger/qttypes.py | 24 |
2 files changed, 18 insertions, 11 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 518767c512..113dabb21b 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -3911,12 +3911,13 @@ class DumperBase(): tdata.name = typish tdata.typeId = typish tdata.templateArguments = self.listTemplateParameters(typish) + if size is not None: + tdata.lbitsize = 8 * size if typish.endswith('*'): tdata.code = TypeCode.Pointer tdata.lbitsize = 8 * self.ptrSize() + tdata.ltarget = self.createType(typish[:-1]) - if size is not None: - tdata.lbitsize = 8 * size self.registerType(typish, tdata) typeobj = self.Type(self, typish) #DumperBase.warn('CREATE TYPE: %s' % typeobj.stringify()) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 6a5a4e90f2..bc86e87858 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -252,22 +252,28 @@ def qdump__QStandardItem(d, value): # warm up cache data_size = 4 * d.ptrSize() if d.qtVersion() >= 0x060000 else 2 * d.ptrSize() d.createType('@QStandardItemData', data_size) + d.createType('@QStandardItem', d.ptrSize()) + d.createType('@QStandardItem*', d.ptrSize()) vtable, dptr = value.split('pp') - # There used to be a virtual destructor that got removed in - # 88b6abcebf29b455438 on Apr 18 17:01:22 2017 - if d.qtVersion() >= 0x050900 or d.isMsvcTarget(): - model, parent, values, children, rows, cols, item = d.split('ppPPIIp', dptr) + if d.qtVersion() >= 0x060000: + model, parent, values, children, rows, cols, item = \ + d.split('pp{@QList<@QStandardItemData>}{@QList<@QStandardItem*>}IIp', dptr) else: - vtable1, model, parent, values, children, rows, cols, item = d.split('pppPPIIp', dptr) + # There used to be a virtual destructor that got removed in + # 88b6abcebf29b455438 on Apr 18 17:01:22 2017 + if d.qtVersion() < 0x050900 and not d.isMsvcTarget(): + dptr += d.ptrSize(); + model, parent, values, children, rows, cols, item = \ + d.split('pp{@QVector<@QStandardItemData>}{@QVector<@QStandardItem*>}IIp', dptr) + d.putEmptyValue() d.putExpandable() if d.isExpanded(): with Children(d): d.putSubItem('[model]', d.createValue(model, '@QStandardItemModel')) - d.putSubItem('[values]', d.createVectorItem(values, '@QStandardItemData')) - d.putSubItem('[children]', d.createVectorItem(children, - d.createPointerType(value.type))) + d.putSubItem('[values]', values) + d.putSubItem('[children]', children) def qdump__QDate(d, value): @@ -2203,7 +2209,7 @@ def qform__QVector(): def qdump__QVector(d, value): if d.qtVersion() >= 0x060000: - dd, data, size = value.split('ppi') + data, size = d.listData(value) d.putItemCount(size) d.putPlotData(data, size, d.createType(value.type.ltarget[0])) # g++ 9.3 does not add the template parameter list to the debug info. |