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

Poenitz Andre Andre.Poenitz at digia.com
Thu Apr 3 17:28:30 CEST 2014



Eddy Ilg wrote:
> 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):
> [...]

Try something like

def qdump__int_image(d, value):
    tx = value["tx"]
    ty = value["ty"]
    d.putValue('[%dx%d]' % (tx, ty))
    d.putNumChild(3)
    if d.isExpanded():
        with Children(d):
            d.putSubItem("tx", tx)  # or short: 'd.putFields(value)' for this and the next line
            d.putSubItem("ty", ty)  
            with SubItem(d, "pixels"):
                size = tx*ty
                d.putItemCount(size)
                d.putNumChild(size)
                if d.isExpanded():
                    pixels = value["pixels"]
                    d.putArrayData(pixels.type.target(), pixels, size, maxNumChild=4000)


Exact syntax is still a bit in a flux as long as I am trying to make the same 
code work with gdb and lldb, and Python 2.x and 3.x at the same time, but
with 3.1 we are "essentially there".

It usually doesn't hurt to look at the various share/qtcreator/debugger/*types.py 
files to get an idea how it should look like.

For "debugging the debugger" there's nowadays a "magic button" in the 
lower left of the Debugger Log view. Pressing that attaches a python 
backtrace to the log usually directly pointing to the problem

Andre'


More information about the Qt-creator mailing list