diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 782f9cd3d7e..c9d826e5b30 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -69,9 +69,13 @@ Hex2EncodedInt1, \ Hex2EncodedInt2, \ Hex2EncodedInt4, \ Hex2EncodedInt8, \ +Hex2EncodedUInt1, \ +Hex2EncodedUInt2, \ +Hex2EncodedUInt4, \ +Hex2EncodedUInt8, \ Hex2EncodedFloat4, \ Hex2EncodedFloat8 \ - = range(23) + = range(27) # Display modes StopDisplay, \ @@ -498,14 +502,24 @@ def simpleEncoding(typeobj): if code == BoolCode or code == CharCode: return Hex2EncodedInt1 if code == IntCode: - if typeobj.sizeof == 1: - return Hex2EncodedInt1 - if typeobj.sizeof == 2: - return Hex2EncodedInt2 - if typeobj.sizeof == 4: - return Hex2EncodedInt4 - if typeobj.sizeof == 8: - return Hex2EncodedInt8 + if str(typeobj).find("unsigned") >= 0: + if typeobj.sizeof == 1: + return Hex2EncodedUInt1 + if typeobj.sizeof == 2: + return Hex2EncodedUInt2 + if typeobj.sizeof == 4: + return Hex2EncodedUInt4 + if typeobj.sizeof == 8: + return Hex2EncodedUInt8 + else: + if typeobj.sizeof == 1: + return Hex2EncodedInt1 + if typeobj.sizeof == 2: + return Hex2EncodedInt2 + if typeobj.sizeof == 4: + return Hex2EncodedInt4 + if typeobj.sizeof == 8: + return Hex2EncodedInt8 if code == FloatCode: if typeobj.sizeof == 4: return Hex2EncodedFloat4 diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp index 7767dd33f2a..bada2a9b2c7 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -725,15 +725,27 @@ void decodeArray(QList *list, const WatchData &tmplate, { switch (encoding) { case Hex2EncodedInt1: - decodeArrayHelper(list, tmplate, rawData); + decodeArrayHelper(list, tmplate, rawData); break; case Hex2EncodedInt2: - decodeArrayHelper(list, tmplate, rawData); + decodeArrayHelper(list, tmplate, rawData); break; case Hex2EncodedInt4: - decodeArrayHelper(list, tmplate, rawData); + decodeArrayHelper(list, tmplate, rawData); break; case Hex2EncodedInt8: + decodeArrayHelper(list, tmplate, rawData); + break; + case Hex2EncodedUInt1: + decodeArrayHelper(list, tmplate, rawData); + break; + case Hex2EncodedUInt2: + decodeArrayHelper(list, tmplate, rawData); + break; + case Hex2EncodedUInt4: + decodeArrayHelper(list, tmplate, rawData); + break; + case Hex2EncodedUInt8: decodeArrayHelper(list, tmplate, rawData); break; case Hex2EncodedFloat4: diff --git a/src/plugins/debugger/watchutils.h b/src/plugins/debugger/watchutils.h index b62854cdb10..77938ecef31 100644 --- a/src/plugins/debugger/watchutils.h +++ b/src/plugins/debugger/watchutils.h @@ -75,8 +75,12 @@ enum DebuggerEncoding Hex2EncodedInt2 = 18, Hex2EncodedInt4 = 19, Hex2EncodedInt8 = 20, - Hex2EncodedFloat4 = 21, - Hex2EncodedFloat8 = 22 + Hex2EncodedUInt1 = 21, + Hex2EncodedUInt2 = 22, + Hex2EncodedUInt4 = 23, + Hex2EncodedUInt8 = 24, + Hex2EncodedFloat4 = 25, + Hex2EncodedFloat8 = 26 }; bool isEditorDebuggable(Core::IEditor *editor);