forked from qt-creator/qt-creator
Debugger: Fix bitfield dumping with Python 3
Change-Id: I2959a2e14c6f25e29460de74ea95a16a5226d48e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -3198,7 +3198,7 @@ class DumperBase():
|
||||
return self.cast(self.type.ltarget).extractField(field)
|
||||
if self.type.code in (TypeCode.Reference, TypeCode.RValueReference):
|
||||
return self.dereference().extractField(field)
|
||||
#DumperBase.warn('FIELD: %s ' % field)
|
||||
#DumperBase.warn('FIELD: %s ' % (field,))
|
||||
val = self.dumper.Value(self.dumper)
|
||||
val.name = field.name
|
||||
val.isBaseClass = field.isBase
|
||||
@@ -3227,9 +3227,6 @@ class DumperBase():
|
||||
lbyte = ldata[i]
|
||||
else:
|
||||
lbyte = ldata[fieldOffset + fieldSize - 1 - i]
|
||||
if sys.version_info[0] >= 3:
|
||||
data += lbyte
|
||||
else:
|
||||
data += ord(lbyte)
|
||||
data = data >> fieldBitpos
|
||||
data = data & ((1 << fieldBitsize) - 1)
|
||||
|
@@ -6121,6 +6121,29 @@ void tst_Dumpers::dumper_data()
|
||||
+ Check("watch.1.12", "s.front", "13", "unsigned int") % GdbEngine;
|
||||
|
||||
|
||||
QTest::newRow("Bitfield2")
|
||||
<< Data("#include <QList>\n\n"
|
||||
"struct Entry\n"
|
||||
"{\n"
|
||||
" Entry(bool x) : enabled(x) {}\n"
|
||||
" bool enabled : 1;\n"
|
||||
" bool autorepeat : 1;\n"
|
||||
" signed int id;\n"
|
||||
"};\n",
|
||||
|
||||
"QList<Entry> list;\n"
|
||||
"list.append(Entry(true));\n"
|
||||
"list.append(Entry(false));\n",
|
||||
|
||||
"&list")
|
||||
|
||||
+ CoreProfile()
|
||||
+ Check("list.0.enabled", "1", "bool : 1") % NoCdbEngine
|
||||
+ Check("list.0.enabled", "1", "bool") % CdbEngine
|
||||
+ Check("list.1.enabled", "0", "bool : 1") % NoCdbEngine
|
||||
+ Check("list.1.enabled", "0", "bool") % CdbEngine;
|
||||
|
||||
|
||||
QTest::newRow("Function")
|
||||
<< Data("#include <QByteArray>\n"
|
||||
"struct Function\n"
|
||||
|
Reference in New Issue
Block a user