Hallo.
Ich benutze Visual Studio 2003 und habe Langezeit nur mit QT 3 gearbeitet.
Integration ist gut. Debug war ohne Probleme Möglich.
Einen Qstring konnte ich am Haltepunkt mit dem Mauszeiger "berühren" und der Werte Inhalt wurde angezeigt.
Weiterhin war es ohne Probleme Möglich einen QString zu überwachen. Der Wert wurde korekt angezeigt.
Nun habe ich parallel QT 4.3.4 installiert und die qt-vsaddin-collection-2.1.4 installiert.
In meinen Projekten kann ich nun zwischen QT3 und QT4 wechslen.
Soweit super.
Aber ich habe Probleme den QString nun im Debug Mode auszulesen.
QString test;
test = "hallo welt";
Gehe ich nun mit dem Mauszeiger auf test oder Überwache ich die Variable kommt:
test = {??? size=???} // früher test ={"hallo welt" size=10}
a(uch über qstring.d.ascii oder qstringd.unicode kommt nur Mist.)
Wie kann ich wieder den QString debugen. Oder muss ich QT4 wieder runterschmeissen.
Bei gross Programmen und Fehleranalyse kann ich es mir nicht leisten überall den QString erst nem char zuzuordnen.
M.f.G: Tie123
QT 3.3.8 und QT 4.3.4 parallel -> Debug Problem. [gelöst]
QT 3.3.8 und QT 4.3.4 parallel -> Debug Problem. [gelöst]
Zuletzt geändert von tie123 am 28. März 2008 12:26, insgesamt 1-mal geändert.
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Das hat nichts mit Qt4 zu tun. Ich weiß nicht ob es bei 2003 so anders ist, aber bei 2008 kann ich ohne Probleme mit den Mauszeiger rüberfahren, test "aufklappen", d "aufklappen" und ich seh den Inhalt bei data oder array.
Eine Klasse zu überprüfen (besonders solch eine 'Komplexe') ist nunmal etwas anders als nur einen Datentyp zu überprüfen.
Alternativ kannst du auch einfach einen Watch setzen, z. B.:
test.d->data
oder
test.d->array
Eine Klasse zu überprüfen (besonders solch eine 'Komplexe') ist nunmal etwas anders als nur einen Datentyp zu überprüfen.
Alternativ kannst du auch einfach einen Watch setzen, z. B.:
test.d->data
oder
test.d->array
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
An Herrn Lustig .......
In der autoexp.dat den QT Block von:
in
geändert und schon läufts wieder.
Jetzt muss ich nur noch nen script schreiben, das mir je nach QT Version den passenden Block aktiviert.
Super genau das was ich gesucht hatte. Herzlichen Dank.Christian81 hat geschrieben:Diese infos sind in der autoexp.dat gespeichert. Da QString als Name in Qt3 und Qt4 gleich sind, muss sich VS für eins entscheiden. Ist dann wohl die Darstellungsform für Qt4...
In der autoexp.dat den QT Block von:
Code: Alles auswählen
...
..
.
QString=<d->data,su> size=<d->size,u>
QByteArray=<d->data,s> size=<d->size,u>
QUrl =<d->encodedOriginal.d->data,s>
QUrlInfo =<d->name.d->data,su>
QPoint =x=<xp> y=<yp>
QPointF =x=<xp> y=<yp>
QRect =x1=<x1> y1=<y1> x2=<x2> y2=<y2>
QRectF =x=<xp> y=<yp> w=<w> h=<h>
QSize =width=<wd> height=<ht>
QSizeF =width=<wd> height=<ht>
QMap<*> =size=<d->size>
QVector<*> =size=<d->size>
QHash<*> =size=<d->size>
QVarLengthArray<*> =size=<s> data=<ptr>
QFont =family=<d->request.family.d->data,su> size=<d->request.pointSize, f>
QDomNode =name=<impl->name.d->data,su> value=<impl->value.d->data,su>
..
..
..
Code: Alles auswählen
...
..
.
;QT4
;QString=<d->data,su> size=<d->size,u>
;QByteArray=<d->data,s> size=<d->size,u>
;QUrl =<d->encodedOriginal.d->data,s>
;QUrlInfo =<d->name.d->data,su>
;QPoint =x=<xp> y=<yp>
;QPointF =x=<xp> y=<yp>
;QRect =x1=<x1> y1=<y1> x2=<x2> y2=<y2>
;QRectF =x=<xp> y=<yp> w=<w> h=<h>
;QSize =width=<wd> height=<ht>
;QSizeF =width=<wd> height=<ht>
;QMap<*> =size=<d->size>
;QVector<*> =size=<d->size>
;QHash<*> =size=<d->size>
;QVarLengthArray<*> =size=<s> data=<ptr>
;QFont =family=<d->request.family.d->data,su> size=<d->request.pointSize, f>
;QDomNode =name=<impl->name.d->data,su> value=<impl->value.d->data,su>
;QT3
QString=<d->unicode,su> len=<d->len,u>
QCString =<shd->data, s>
QPoint =x=<xp> y=<yp>
QRect =x1=<x1> y1=<y1> x2=<x2> y2=<y2>
QSize =width=<wd> height=<ht>
QWMatrix =m11=<_m11> m12=<_m12> m21=<_m21> m22=<_m22> dx=<_dx> dy=<_dy>
QVariant =Type=<d->typ> value=<d->value>
QValueList<*> =Count=<sh->nodes>
QPtrList<*> =Count=<numNodes>
QGuardedPtr<*> =ptr=<priv->obj>
QEvent =type=<t>
QObject =class=<metaObj->classname,s> name=<objname,s>
...
..
.Jetzt muss ich nur noch nen script schreiben, das mir je nach QT Version den passenden Block aktiviert.