Seite 1 von 1
Wie auf Mac OSX 10.6 erfolgreich debuggen?
Verfasst: 26. Juni 2011 11:24
von mkae
Ist es einem Leser dieses Forums schon mal gelungen, auf Mac OSX 10.6 QT 4.7.3 in der Debug-Version zum Laufen zu bringen?
Ich habe alles mit MacPorts installiert, allerdings kann Xcode/gdb meine QT-Programme nicht debuggen. Sie stürzen schlichtweg gleich zu Beginn ab.
Re: Wie auf Mac OSX 10.6 erfolgreich debuggen?
Verfasst: 26. Juni 2011 11:43
von grog
Welcher gdb ist das, der von Apple (6.3.50.irgendwas) oder der "offizielle" FSF (7.x)? Der FSF gdb crasht bekanntermassen (
http://sourceware.org/bugzilla/show_bug.cgi?id=11488)
Verfasst: 26. Juni 2011 11:47
von mkae
Der FSF-gdb crasht. Klar. Ich nutze ihn nicht.
Aber auch mit dem Apple-gdb
Code: Alles auswählen
GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:33:48 UTC 2011)
komme ich nicht weiter.
Hier ist eine Beschreibung dessen was passiert, wenn man zu debuggen versucht:
http://developer.qt.nokia.com/forums/viewthread/6748
Verfasst: 26. Juni 2011 12:09
von grog
Na, das hat aber nichts mit dem Debugger zu tun:
Code: Alles auswählen
QWidget: Must construct a QApplication before a QPaintDevice
Program received signal: “SIGABRT”.
Das ist ein Fehler in dem debuggten Programm. Irgendwas wird dort mit einem QPainter oder QPixmap o.ae. gemacht, bevor der QApplication-Konstruktor laeuft. Koennte zum Beispiel irgenein globales Objekt sein, das konstruiert wird, bevor main() startet.
Verfasst: 26. Juni 2011 12:13
von mkae
Ok. Stimmt.
Ich hätte meine Frage da wohl etwas anders formulieren müssen.
Das Programm hat keinen Fehler. Es liegt wohl irgendwie daran, WIE das Programm auf die Debug-Libraries zugreift, oder diese beim Bauen eingelinkt werden...
Der Code des Test-Programmes findet sich unter
https://bitbucket.org/mkae/kde-tests/get/tip.zip
Verfasst: 26. Juni 2011 13:01
von grog
Wenn da ein QWidget oder ein QPixmap konstruiert wird, bevor die QApplication steht, ist das aber ein Fehler im Programm. Das der Fehler, den Du bekommst, aus einem anderen Grund kommt, kann ich mir nur sehr schwer vorstellen. Setz doch einfach einen Breakpoint auf die Stelle, an der die Warnung ausgegeben wird, und schau, an welcher Stelle das Programm dran steht.
Verfasst: 26. Juni 2011 13:12
von mkae
Es kann kein Problem meines Codes sein, da die Release-Version den Crash nicht zeigt.
Eigentlich möchte ich einen ganz anderen Bug untersuchen. Aus diesem Grund baue ich darum die Debug-Version.
Diese Debug-Version jedoch kann ich gar nicht erst starten, sobald diese die QT-Debug-Libraries verwenden.
Andere Poster auf QT-dev meinten, dass Libraries der Debug- und Release-Versionen gemischt würden und somit das Problem hervorrufen.
Die Frage ist nun, was ich tun muss, um den obigen Source-Code (KDE-Tutorial #2) überhaupt debuggen zu können.
Die Verwendung von
allein forciert den Crash. Ohne diese Environment-Variable jedoch werden die Release-Libraries verwendet und Debugging ist ganz und gar nicht möglich.
Verfasst: 26. Juni 2011 14:00
von grog
[quote="mkae"]Es kann kein Problem meines Codes sein, da die Release-Version den Crash nicht zeigt.[quote]
Naja, dann brauchen wir ja nicht weiter diskutieren
[quote="mkae"]
Andere Poster auf QT-dev meinten, dass Libraries der Debug- und Release-Versionen gemischt würden und somit das Problem hervorrufen.
[quote]
Das ist ein Problem unter Windows, und nur da.
[quote="mkae"]
Die Frage ist nun, was ich tun muss, um den obigen Source-Code (KDE-Tutorial #2) überhaupt debuggen zu können.
[quote]
Ich glaube nicht, dass es allzuviele Leute gibt, die KDE-Programme auf Mac kompilieren wollen. Nach Befragung von Google wuerde ich
https://mail.kde.org/mailman/listinfo/kde-mac versuchen.
Verfasst: 26. Juni 2011 14:17
von mkae
Danke Grog,
vielleicht ist's wirklich der beste Weg, der betreffenden ML beizutreten.
