diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 782f9cd3d7e8c20ced67d194c7150e7eed08b3da..c9d826e5b304e78815f8e9f7f7148c9b95ccc62a 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 7767dd33f2a88e8e377da7fe52adbc71a1ba7a8b..bada2a9b2c7f3af3d04307aea8b92159e3824622 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -725,15 +725,27 @@ void decodeArray(QList<WatchData> *list, const WatchData &tmplate, { switch (encoding) { case Hex2EncodedInt1: - decodeArrayHelper<uchar>(list, tmplate, rawData); + decodeArrayHelper<signed char>(list, tmplate, rawData); break; case Hex2EncodedInt2: - decodeArrayHelper<ushort>(list, tmplate, rawData); + decodeArrayHelper<short>(list, tmplate, rawData); break; case Hex2EncodedInt4: - decodeArrayHelper<uint>(list, tmplate, rawData); + decodeArrayHelper<int>(list, tmplate, rawData); break; case Hex2EncodedInt8: + decodeArrayHelper<qint64>(list, tmplate, rawData); + break; + case Hex2EncodedUInt1: + decodeArrayHelper<uchar>(list, tmplate, rawData); + break; + case Hex2EncodedUInt2: + decodeArrayHelper<ushort>(list, tmplate, rawData); + break; + case Hex2EncodedUInt4: + decodeArrayHelper<uint>(list, tmplate, rawData); + break; + case Hex2EncodedUInt8: decodeArrayHelper<quint64>(list, tmplate, rawData); break; case Hex2EncodedFloat4: diff --git a/src/plugins/debugger/watchutils.h b/src/plugins/debugger/watchutils.h index b62854cdb1055e4b24f4c29f2d8d9f33b33338c4..77938ecef3167bc4cdffd22279c387721f6d8bcd 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);