Debugger: Add dumper for Nim's string and sequence types

... and make the auto test infrastructure able to handle
a test. To pass the test, some Nim compiler must be
accessible.

Change-Id: I707aa72c0f3a2ea35c7131cba490cafb41617f6c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2016-04-04 21:51:31 +02:00
committed by hjk
parent 21ba1f7b7a
commit e234bbd88b
3 changed files with 138 additions and 47 deletions
+2 -1
View File
@@ -1015,7 +1015,8 @@ class DumperBase:
if arrayByteSize == 0:
# This should not happen. But it does, see QTCREATORBUG-14755.
# GDB/GCC produce sizeof == 0 for QProcess arr[3]
s = str(value.type)
# And in the Nim string dumper.
s = value.type.name
itemCount = s[s.find('[')+1:s.find(']')]
if not itemCount:
itemCount = '100'
+19
View File
@@ -161,6 +161,25 @@ def qdump__Eigen__Matrix(d, value):
s = s + 1
#######################################################################
#
# Nim
#
#######################################################################
def qdump__NimStringDesc(d, value):
size, reserved = value.split('pp')
data = value.address() + 2 * d.ptrSize()
d.putCharArrayHelper(data, size, d.createType('char'), 'utf8')
def qdump__NimGenericSequence__(d, value, regex = "^TY[\d]+$"):
size, reserved = d.split('pp', value)
data = value.address() + 2 * d.ptrSize()
typeobj = value["data"].type.dereference()
d.putItemCount(size)
d.putArrayData(data, size, typeobj)
d.putBetterType("%s (%s[%s])" % (value.type.name, typeobj.name, size))
#######################################################################
#
# D