From b0b8a452c18ee8add1dc1cce0dbea23b46002eee Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 1 Mar 2011 18:38:30 +0100 Subject: [PATCH] debugger: dump integers and floats based on the typedef stripped type --- share/qtcreator/gdbmacros/dumper.py | 12 ++++++------ tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index d4bb8f4be4..780588f91d 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1594,7 +1594,9 @@ class Dumper: except: pass - if type.code == gdb.TYPE_CODE_INT: + typedefStrippedType = stripTypedefs(type) + + if typedefStrippedType.code == gdb.TYPE_CODE_INT: if self.alienSource and str(type) == "unsigned long long": strlen = value % (1L<<32) strptr = value / (1L<<32) @@ -1609,15 +1611,15 @@ class Dumper: self.putNumChild(0) return - if type.code == gdb.TYPE_CODE_CHAR: + if typedefStrippedType.code == gdb.TYPE_CODE_CHAR: self.putType(realtype) self.putValue(int(value)) self.putAddress(value.address) self.putNumChild(0) return - if type.code == gdb.TYPE_CODE_FLT \ - or type.code == gdb.TYPE_CODE_BOOL: + if typedefStrippedType.code == gdb.TYPE_CODE_FLT \ + or typedefStrippedType.code == gdb.TYPE_CODE_BOOL: self.putType(realtype) self.putValue(value) self.putAddress(value.address) @@ -1641,8 +1643,6 @@ class Dumper: self.putFields(child) return - typedefStrippedType = stripTypedefs(type) - if isSimpleType(typedefStrippedType): #warn("IS SIMPLE: %s " % type) #self.putAddress(value.address) diff --git a/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp b/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp index 34ec31f5df..8f2598c5c5 100644 --- a/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp +++ b/tests/manual/gdbdebugger/simple/simple_gdbtest_app.cpp @@ -147,6 +147,7 @@ public: int m_extraX; QStringList m_extraY; uint m_extraZ : 1; + bool m_extraA : 1; bool m_extraB; }; @@ -184,6 +185,8 @@ void DerivedObject::setX(int x) { Q_D(DerivedObject); d->m_extraX = x; + d->m_extraA = !d->m_extraA; + d->m_extraB = !d->m_extraB; } QStringList DerivedObject::y() const @@ -216,9 +219,11 @@ struct S { uint x : 1; uint y : 1; + bool c : 1; bool b; float f; double d; + qreal q; int i; }; -- 2.11.0