diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index f228b763512..21017d330b1 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -1025,7 +1025,7 @@ class Dumper(DumperBase): self.putType(typeName) if typeobj.sizeof == 1: # Force unadorned value transport for char and Co. - self.putValue(int(value) & 0xff) + self.putValue(int(value)) else: self.putValue(value) self.putNumChild(0) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index e36c1ab4598..7826eadc84a 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -4758,6 +4758,24 @@ void tst_Dumpers::dumper_data() + Check("a.#1.i", "42", "int") % LldbEngine + Check("a.#2.f", ff, "float") % LldbEngine; + QTest::newRow("Chars") + << Data("#include \n", + "char c = -12;\n" + "signed char sc = -12;\n" + "unsigned char uc = -12;\n" + "qint8 qs = -12;\n" + "quint8 qu = -12;\n" + "unused(&c, &sc, &uc, &qs, &qu);\n") + + + Check("c", "-12", "char") // on all our platforms char is signed. + + Check("sc", "-12", "signed char") % NoCdbEngine + + Check("sc", "-12", "char") % CdbEngine + + Check("uc", "244", "unsigned char") + + Check("qs", "-12", "@qint8") % NoCdbEngine + + Check("qs", "-12", "char") % CdbEngine + + Check("qu", "244", "@quint8") % NoCdbEngine + + Check("qu", "244", "unsigned char") % CdbEngine; + QTest::newRow("CharArrays") << Data("char s[] = \"aöa\";\n"