diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index a9ef5b980f7..d0d1244ff1b 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -608,7 +608,8 @@ class DumperBase(): return data, size, alloc # addr is the begin of a QByteArrayData structure - def encodeStringHelper(self, addr, limit): + def encodeStringHelper(self, value, limit): + addr = self.extractPointer(value) # Should not happen, but we get it with LLDB as result # of inferior calls if addr == 0: @@ -690,7 +691,7 @@ class DumperBase(): data = self.readMemory(ptr, shown) return data else: - elided, data = self.encodeStringHelper(self.extractPointer(value), limit) + elided, data = self.encodeStringHelper(value, limit) return data def encodedUtf16ToUtf8(self, s): @@ -750,8 +751,7 @@ class DumperBase(): data = self.readMemory(ptr, shown) self.putValue(data, 'utf16', elided=elided) else: - addr = self.extractPointer(value) - elided, data = self.encodeStringHelper(addr, self.displayStringLimit) + elided, data = self.encodeStringHelper(value, self.displayStringLimit) self.putValue(data, 'utf16', elided=elided) def putPtrItem(self, name, value): diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 36da4087a5b..0d1facbecbf 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -3052,7 +3052,8 @@ def qdump__QJsonValue(d, value): return if t == 3: d.putType('QJsonValue (String)') - elided, base = d.encodeStringHelper(data, d.displayStringLimit) + string = value.split('{QString}')[0] + elided, base = d.encodeString(string, d.displayStringLimit) d.putValue(base, 'utf16', elided=elided) return if t == 4: