[Qt-creator] qdump for custom data type won't work - unavailable synchronous data

Eddy Ilg me at eddy-ilg.net
Thu Apr 3 16:50:46 CEST 2014


I am having trouble integrating my own custom data type into Qt Creator, 
although very simple:

struct int_image
{
     int* pixels;
     int tx; /* size in x-dimension */
     int ty; /* size in y-dimension */
};

I defined a custom dumper like this (almost identical to 
http://plohrmann.blogspot.de/2013/10/writing-debug-visualizers-for-gdb.html): 


def qdump__int_image(d, value):
         pixels = value["pixels"]
         tx = value["tx"]
         ty = value["ty"]
         size = tx*ty
         maxDisplayItems = 4000

         type=gdb.lookup_type('int')
         ptr=gdb.Value(pixels.cast(type.pointer()))

         d.putValue('[%dx%d]'%(tx,ty))
         d.putNumChild(3)

         with Children(d):
                 d.putSubItem("tx", tx)
                 d.putSubItem("ty", ty)
                 with SubItem(d, "pixels"):
                         d.putItemCount(size)
                         d.putNumChild(size)
                         if 1:
                         #if d.isExpanded():
                                 numDisplayItems = min(maxDisplayItems, 
size)
                                 with 
Children(d,numChild=size,maxNumChild=numDisplayItems,childType=type,addrBase=ptr,addrStep=ptr.dereference().__sizeof__):
                                         for i in range(0,numDisplayItems):
                                                 d.putSubItem(i, 
ptr.dereference())
                                                 ptr += 1

         file=open('/home/x/debug.txt','w')
         file.write(str(string.join(d.output,"\n")))
         file.close()


The output looks like this:

{
iname="local.grid",
name="grid",
addr="0x7fffffffde50",
numchild="3",
children=[
{
name="tx",
addr="0x7fffffffde58",
numchild="0",
type="int",
value="2",
},
{
name="ty",
addr="0x7fffffffde5c",
numchild="0",
type="int",
value="1953",
},
{
name="pixels",
numchild="3906",
childtype="int",
childnumchild="0",
addrbase="0x725ee0",
children=[
{
addr="0x725ee0",
value="0",
},
{
addr="0x725ee4",
value="0",
},
{
addr="0x725ee8",
value="2",
},
...
{
addr="0x729be4",
value="60",
},
],
value="<3906 items>",
},
],

But for "pixels" I only see <unavailable synchronous data> in Qt 
Creator. I have already tried lots of stuff but the message stays the same.

Any idea what I am missing?


Best regards,



Eddy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20140403/3a58113b/attachment.html>


More information about the Qt-creator mailing list