ist das Debuggen einer eigenen Klasse nicht möglich?

Verschiedenes zu Qt
Antworten
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

ist das Debuggen einer eigenen Klasse nicht möglich?

Beitrag von Hans_Wurst »

Hallo,

ich habe die neueste Version von Qt installiert und verwende dessen Eclipse-integrierung. Soweit funktioniert auch alles gut. Was mich allerdings wundert ist, dass ich nur den Code in meiner main-Datei debuggen kann. Jedoch nicht den in selbst erstellten Klassen (weder im Konstruktor noch in anderen Klassenfunktionen). Ist dies bei euch auch der Fall, oder ist das ein Fehler von meinem Qt/Eclipse?

Danke schon für eure Antworten.
Tuxi56
Beiträge: 6
Registriert: 7. Januar 2009 16:13
Wohnort: Halle (Saale)

ist das Debuggen einer eigenen Klasse nicht möglich?

Beitrag von Tuxi56 »

Hallo Hans_Wurst,

mir geht es leider ähnlich wie Dir :(
Ich benutze Qt4.4.3 mit Eclipse Ganymede und dem aktuellen Qt-Integrations-Plugin unter Linux (SuSE11.0). Das Debugger-Problem hatte ich aber schon unter den Vorversionen von Qt und Eclipse: Projekte OHNE Qt kann ich bestens debuggen - solche MIT Qt leider nicht. Was ich auch tue - "Launching" bleibt IMMER (bei jedem Qt-Projekt) bei 87% hängen :?
Ich habe schon in etlichen anderen Foren Hilfe gesucht - leider ohne Ergebnis.
Ich behelfe mir ganz gut mit dem "DDD" - wenn man dem beim Start als Parameter das aktuelle Projekt mitgibt, dann geht das auch recht komfortabel, aber das kann es eigentlich nicht sein, oder? Vielleicht weiß hier jemand eine Lösung, denn das Problem haben ganz offensichtlich viele Leute.

Gruß!
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

"Launching" bleibt IMMER (bei jedem Qt-Projekt) bei 87% hängen
Kenn ich von mir selbst. Allerdings läuft er nach ein par Sekunden auf 100% durch. Je nach Projektgröße kann das zwischen 1s bis 30s dauern. :evil:

Geholfen hat bei mir eine Erhöhung des Timeouts vom Debugger. Die Einstellung findet man in den Eclipse-preferences unter C/C++

Bei kleineren Projekten war dies allerdings nicht nötig. Eclipse CDT von Ganymed mit QT integration (aktuelle Versionen) unter KUbuntu funktionieren problemlos. :P

Bekommt Ihr eigentlich eine Fehlermeldung oder brecht Ihr den Vorgang ab?
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

Beitrag von Hans_Wurst »

Also das Problem mit dem (auf 78%) hängen bleiben habe ich nicht.

Das einzige was nicht funktionieren will, ist das Debuggen. Ich habe mir schon überlegt ob das vielleicht daran liegen kann, dass vor dem kompilieren des c-Codes noch ein moc-Kompiler durchlaufen werden muss. Vielleicht ist es dann nicht mehr so einfach möglich dann auch noch den Haltepunkt zum Debuggen zu finden. Ist aber nur so eine Vermutung.

Ich hoffe dass noch mehr Leute schreiben ob das Debuggen bei ihnen möglich ist. Somit wüsste ich wenigstens ob es überhaupt machbar ist (oder doch nur ein Problem von mir ist).
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

Hallo Hans_Wurst

du kannst in Eclipse auch deine eigenen Klassen debuggen. Dies funktioniert wunderbar.
:arrow: So wie Du es beschreibst nehm ich an, dass du dir einen Breakpoint in einer anderen Klasse in einer anderen Datei gesetzt hast. Nun das Programm im Debugmodus laufen läßt damit es am Breakpoint anhält.
Versuch mal folgendes:

:idea: 1. Debug mal in einzelnen Schritten mit F5 (Step into) und F6 (Step over). Wenn du ein F5 beim erzeugen eines Objekts machst solltest Du in den Konstruktor kommen.

:idea: 2. Überprüfe ob deine Breakpoints vielleicht disabled sind. Dies siehst du in der Brekpoints-Registrierkarte in der Debugansicht von Eclipse

Wenn beides nicht geht würde ich behaubten das Du eine Fehler im Code hast und das Programm zu deinem Breakpoint gar nicht kommt.

Welchen Debugger verwendest du eigentlich :?: Bringt Eclipse Meldungen auf der Konsole beim Debuggen :?:
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

Beitrag von Hans_Wurst »

erpheus hat geschrieben:Welchen Debugger verwendest du eigentlich?
MinGW
erpheus hat geschrieben:Bringt Eclipse Meldungen auf der Konsole beim Debuggen?
nein


Danke schön, jetzt geht es.

Wenn ich den Debugg-Modus starte, erhalte ich ein Fenster mit "No source available for main()" und einen Button mit "View Disassembly..."

Drücke ich dann F8, wird mein Haltepunkt im Konstruktor übersprungen. Setze ich jedoch einen Punkt an die Stelle, an der ich das Objekt (in der main()) aufrufe, und drücke dann F5, springt er diesmal in den Konstruktor (anstatt ihn wieder zu überrennen).

Ist zwar komisch, aber letzt endlich geht es dann doch :D
Tuxi56
Beiträge: 6
Registriert: 7. Januar 2009 16:13
Wohnort: Halle (Saale)

ist das Debuggen einer eigenen Klasse nicht möglich?

Beitrag von Tuxi56 »

erpheus hat geschrieben: Geholfen hat bei mir eine Erhöhung des Timeouts vom Debugger.
Habs probiert und die Werte einfach mal verdoppelt - außer daß ich länger auf den Timeout warten muß, passiert gar nichts :(
Bekommt Ihr eigentlich eine Fehlermeldung oder brecht Ihr den Vorgang ab?
Ja - eclipse schmeißt eine Message-Box "Error stopping at main. Reason: Target request failed: Target is not responding (timed out). Continue?"
Selbst wenn ich dieses mit Yes bestätige, folgt einfach nur eine weitere Warterunde.

meanwhile:
Nach dem x-ten Versuch mit dieser Einstellung ist es mir soeben erstmalig gelungen, mit meinem aktuellen Qt-Projekt in den Debug-Modus von eclipse zu kommen und in die Debug-Perspective zu wechseln. Soweit so gut - das Ganze hat aber unakzeptabel lange gedauert und auch ist die Debug-Perspective von eclipse im Vergleich zu DDD nicht grad das Gelbe vom Ei... Wenn sich wenigstens der Start auf ein erträgliches Maß beschleunigen ließe... Mit DDD geht das extrem schnell - es kann also weder am gdb noch an Linux liegen. C++ - Projekte OHNE Qt lassen sich auch unter eclipse genau so fix debuggen, wie in DDD. Ergo muß irgendetwas mit der Qt-Integration für eclipse faul sein, oder? Hat noch jemand eine Idee?
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

Ich hab zu dem Thema mal noch ein bischen im Netz geforscht. laut diesem Link: http://labs.trolltech.com/forums/topic/80, erstellt die QT-Eclipseintegration in der defaulteinstellung immer eine Releaseversion des Programms :evil: . Diese kann man selbstverständlich nicht debuggen. Das kann man natürlich auf debug umstellen.
Keine Ahnung ob ich das mal gemacht hab, ist zu lang her.

Zum Vergleich zu DDD kann ich nichts sagen. Gefällt mir nicht. Ich arbeite grad mit Eclipse weil ich keine Wahl habe.

@Hans_Wurst:
Was has Du denn jetzt geändert, dass es nach dem xten Versuch geklappt hat? Würde mich interessieren.
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

Beitrag von Hans_Wurst »

Geändert habe ich nichts. Ich habe jetzt nur meinen Haltepunkt vor den Aufruf meines Objektes gesetzt. Dann kann ich mit Hilfe von "Step Into" auch in den Konstruktor springen.
Antworten