Seite 1 von 1

ist das Debuggen einer eigenen Klasse nicht möglich?

Verfasst: 7. Januar 2009 10:57
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.

ist das Debuggen einer eigenen Klasse nicht möglich?

Verfasst: 7. Januar 2009 17:12
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ß!

Verfasst: 8. Januar 2009 10:07
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?

Verfasst: 8. Januar 2009 10:52
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).

Verfasst: 8. Januar 2009 12:50
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 :?:

Verfasst: 8. Januar 2009 15:10
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

ist das Debuggen einer eigenen Klasse nicht möglich?

Verfasst: 8. Januar 2009 19:22
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?

Verfasst: 9. Januar 2009 13:49
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.

Verfasst: 9. Januar 2009 14:16
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.