Hallo,
ich versuche mich gerade in QT 4.4 OpenSource Variante unter Windows mit MinGW und der mod Mingw-gdb Version einzuarbeiten.
Soweit so gut. Ich kann erste Programme comp. & debuggen, habe aber ein Problem beim debuggen von QT-Anwendungen. Als Frontend benutze zurzeit Eclipse mit dem QTPlugin, unter edyuk ist es aber das gleiche. gdb per Kommandozeile habe ich aus Unkenntnis nicht probiert.
Wenn ich nun mein Programm per Haltepunkt stoppe, möchte ich mir oft den Inhalt bestimmter (lokaler) Variablen/Eigenschaften, z.B. von QString, anzeigen lassen. Leider bekomme ich immer nur eine nicht aussagekräfte Baumstruktur zu Gesicht? Ich meine mich zu erinnern, das ich unter KDE/KDevelop schon gesehen habe, dass der Debugger QT-Objekte in Klartext auflösen kann.
Hat jemand ne Ahnung was ich falsch mache, bzw. was mir fehlt?
grüße hm
QT Debuggen: Variablen überwachen
Nachtrag
Hallo,
es würde mir ja schon helfen, wenn ich wüste ob das ein typ. Problem ist oder es an mir liegt! Also bitte mal Antworten, ob jemand anderes das Problem auch hat, bzw. mal schreiben das bei ihm alles geht.
btw. ich habe inzwischen qdevelop ausprobiert. Qdevelop kann einen QString richtig beobachten! Leider wird aber von Qdevelop/ctags das qt-verzeichnis nicht indiziert, sodass die die code completion nicht vernünftig funktioniert.....
hm
es würde mir ja schon helfen, wenn ich wüste ob das ein typ. Problem ist oder es an mir liegt! Also bitte mal Antworten, ob jemand anderes das Problem auch hat, bzw. mal schreiben das bei ihm alles geht.
btw. ich habe inzwischen qdevelop ausprobiert. Qdevelop kann einen QString richtig beobachten! Leider wird aber von Qdevelop/ctags das qt-verzeichnis nicht indiziert, sodass die die code completion nicht vernünftig funktioniert.....
hm
Also beim VS hangel ich mich bei den QTObjecten auch durch die baumstruktur bis ich auf den datenpointer komme .... der iss ja nen dynamischer 16bittiger string, und den kann der debugger von VS aufloesen.
geht das bei euch ned .... ?
direkt ne anzeige bei QString, das der wert drinne steht hab ich auch ned ...
Ciao ....
geht das bei euch ned .... ?
direkt ne anzeige bei QString, das der wert drinne steht hab ich auch ned ...
Ciao ....
Bei mir nicht... wobei das etwas schwer zu sagen ist, da das bei mir zig tausend mal verschachtelt ist und nach 100 Klicks verlierst du den Überblick.
Das ist eine Zumutung... Falls das Eclipse bei mir anzeigen würde und ich das nur nicht finde, ist das nicht vertretbar... Da bin ich schneller wenn ich von Hand debugge und immer ein qDebug() in meinen Code einfüge, jedoch ist das keine gute alternative...
// EDIT hier ist mal ein Screenshot:

Und hier mal noch der Code dessen Inhalt ich gerne einsehen würde:
Das ist eine Zumutung... Falls das Eclipse bei mir anzeigen würde und ich das nur nicht finde, ist das nicht vertretbar... Da bin ich schneller wenn ich von Hand debugge und immer ein qDebug() in meinen Code einfüge, jedoch ist das keine gute alternative...
// EDIT hier ist mal ein Screenshot:

Und hier mal noch der Code dessen Inhalt ich gerne einsehen würde:
Code: Alles auswählen
typedef struct {
QString label;
QString suite;
int winSystem;
int unixSystem;
QString description;
QString url;
bool authentication;
QString username;
QString password;
}SRepository;
static QList<SRepository*> repositoryList;
Ein noch nicht ganz befriedingender Workaround()
Hallo,
ich bin ein stückchen weiter bei meinem Problem. Ich kann als Watch auch eine funktion eingeben, so z.B.
dann beobachte ich im Debugger:
und bekomme dann in der Anzeige ein int mit der richtigen Anzahl.
Leider funktioniert das nicht bei
welches mit ein char* zurückgeben sollte
Es funktioniert aber wiederum
Jetzt habe ich ein QByteArray. Im QBytearray sehe ich in der Baumstruktur meinen String. Kann ihn aber immer noch nicht isolieren?
Ich probiers weiter..., evtl. hat ja jemand ne Lösung wie ich direkt im debugger drauf zugreifen kann
gruesse hm
ich bin ein stückchen weiter bei meinem Problem. Ich kann als Watch auch eine funktion eingeben, so z.B.
Code: Alles auswählen
QString strTest = "Blablabla";
Code: Alles auswählen
strTest.size() Leider funktioniert das nicht bei
Code: Alles auswählen
strTest.toStdString() welches mit ein char* zurückgeben sollte
Es funktioniert aber wiederum
Code: Alles auswählen
strTest.toLatin() Jetzt habe ich ein QByteArray. Im QBytearray sehe ich in der Baumstruktur meinen String. Kann ihn aber immer noch nicht isolieren?
Ich probiers weiter..., evtl. hat ja jemand ne Lösung wie ich direkt im debugger drauf zugreifen kann
gruesse hm