forked from qt-creator/qt-creator
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:
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user