Qt 5.5 mit Visual Studio 2010 - QString im Debuger anzeigen



  • Hallo,
    ich nutze Qt 5.5 mit Visual Studio 2010 unter Windows 10 (64 Bit). Leider habe ich es noch nicht hinbekommen, dass mir QString's als solches angezeigt werden.
    Probiert habe ich schon folgendes in die autoexp.dat unter [Visualizer] einzutragen:

    ; Qt types
    QStringData{
     preview ([(unsigned short*)$e.d + 2 + $e.offset,su])
     stringview ([(unsigned short*)$e.d + 2 + $e.offset,sub])
    }
    QString{
     preview ([$e.d])
    }
    QByteArrayData{
     preview ([(unsigned char*)$e.d + 4 + $e.offset,s])
     stringview ([(unsigned char*)$e.d + 4 + $e.offset,sb])
    }
    QByteArray{
     preview ([$e.d])
    }
    

    und

    ; Qt types
    QStringData{
     preview ([(unsigned short*)$e.d + 4 + $e.offset,su])
     stringview ([(unsigned short*)$e.d + 4 + $e.offset,sub])
    }
    QString{
     preview ([$e.d])
    }
    QByteArrayData{
     preview ([(unsigned char*)$e.d + 8 + $e.offset,s])
     stringview ([(unsigned char*)$e.d + 8 + $e.offset,sb])
    }
    QByteArray{
     preview ([$e.d])
    }
    

    und

    String|::QString{
     preview ([(unsigned short)$e.d + $e.d->offset/2,su])
     stringview ([(unsigned short*)$e.d + $e.d->offset/2,sub])
     }
    QByteArray|::QByteArray{
     preview ([(char)$e.d + $e.d->offset,s])
     stringview ([(char*)$e.d + $e.d->offset,sb])
     }
    

    Hat da jemand noch einen Tip?



  • Brauchst du zwingend VS2010? Die Version ist doch recht veraltet und kann nichtmal C++11 (Falls C++11 features überhaupt benötigt werden)
    Mit VS2012 und neuer wurde ein anderes Format für debugger visualization entwickelt, welches besser funktioniert. Und diese sizeof tricks(mit hardcodierten zahlen) nicht benötigt



  • Danke für die Antwort.
    Leider arbeite ich parallel auf einem anderen System noch mit Windows Vista, bin mir nicht sicher ob VS2012 darauf läuft. Mal sehen, ob ich nicht mal aufrüste.



  • Helmut.Jakoby schrieb:

    Danke für die Antwort.
    Leider arbeite ich parallel auf einem anderen System noch mit Windows Vista, bin mir nicht sicher ob VS2012 darauf läuft. Mal sehen, ob ich nicht mal aufrüste.

    Nach einer kurzen Suche im internet hat ergeben das mindestens Window7 SP1 offiziell für VS2012 benötigt wird



  • Ich verstehe nicht wieso nicht einfach der QT Creator genommen wird. Visual Studio ist zwar besser, aber mit dem QT Creator hast du so ziemlich alles was du brauchst.



  • Normalweise installiert doch Qt die Definitonen mit (vgl autoexp.dat, https://msdn.microsoft.com/en-us/library/jj620914.aspx).

    Habe das gleiche Problem per Google gefunden inkl. Lsg.
    Die Lösung dort ist:

    QString|::QString{
    preview ([(unsigned short)$e.d + $e.d->offset/2,su])
    stringview ([(unsigned short*)$e.d + $e.d->offset/2,sub])
    }
    
    QByteArray|::QByteArray{
    preview ([(char)$e.d + $e.d->offset,s])
    stringview ([(char*)$e.d + $e.d->offset,sb])
    }
    

    Q: https://forum.qt.io/topic/18954/solved-visual-studio-debug-helpers-qt5-and-qstring/4



  • Danke für den Hinweis; hab ich auch schon probiert. Werde wohl nach meinem Urlaub meine Rechner auf Windows 10 mit dem neuesten Visual Studio und Qt umstellen. Dann mal neu probieren.


Anmelden zum Antworten