Debugger: Fix char * display with LLDB

Change-Id: I2d0989bd3581f3b61eb975d58bc1c9e119e27d89
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-10-16 18:39:01 +02:00
parent daf5d6e84e
commit 5ed7442f99
3 changed files with 188 additions and 49 deletions
+25
View File
@@ -391,6 +391,31 @@ class DumperBase:
self.check(count >= minimum)
self.check(count < 1000000)
def findFirstZero(self, p, maximum):
for i in xrange(maximum):
if int(p.dereference()) == 0:
return i
p = p + 1
return maximum + 1
def encodeCArray(self, p, innerType, suffix):
t = self.lookupType(innerType)
p = p.cast(t.pointer())
limit = self.findFirstZero(p, qqStringCutOff)
s = self.readMemory(p, limit * t.sizeof)
if limit > qqStringCutOff:
s += suffix
return s
def encodeCharArray(self, p):
return self.encodeCArray(p, "unsigned char", "2e2e2e")
def encodeChar2Array(self, p):
return self.encodeCArray(p, "unsigned short", "2e002e002e00")
def encodeChar4Array(self, p):
return self.encodeCArray(p, "unsigned int", "2e0000002e0000002e000000")
def putQObjectNameValue(self, value):
try:
intSize = self.intSize()