Fehler mit debuggen
-
So, ich hab hier jetzt gerade ein Problem, bei ihr mir sicherlich nur eingeschrenk helfen könnte.
Also ich hab gerade ein recht komplexes GUI-Programm mit wxwidgets als Libary geschrieben. So weit so gut, aber wenn ich jetzt das Programm ausführe, stürtzt es immer mal wieder in unregelmäßigen Abständen ab. Das eine mal beim aufrufen eines Menus und das andere mal, wenn ich das Programm beenden will.
Aber mein Problem ist jetzt ein ganz anderes. Um zu gucken warum er abstürtzt hab ich ihn einfach mal im Debugg-Modus von DEV-Cpp aus gestartet. Das merkwürdige daran ist aber, dass dann die Fehler nicht auftreten!
Ich bin mittlerweile mit meinen Nerven so gut wie am Ende, weil ich mir einfach nicht vorstellen kann, warum das Programm beim Debuggen Problemlos läuft, aber wenn ich es so ausführe nicht.Irgendeine Idee von euch?
-
Ohne nähere Infos ist das schwierig zu sagen.
Ich kenne Dev-Cpp kaum bis gar nicht. Von Visual Studio weiss ich, dass im Debug-Mode alle Variablen mit 0 initialisiert werden. Im Release-Mode jedoch nicht, was dazu führen kann, dass der Release-Build abschmiert, wenn man an sensiblen Stellen die Initialisierung mit 0 von Hand vergessen hat.
Ansonsten google nach "Dev-Cpp Unterschied Debug Release" oder dergleichen.
-
ich hole mal meine kugel aus dem schrank ....
-
Hubi2 schrieb:
So, ich hab hier jetzt gerade ein Problem, bei ihr mir sicherlich nur eingeschrenk helfen könnte.
Also ich hab gerade ein recht komplexes GUI-Programm mit wxwidgets als Libary geschrieben. So weit so gut, aber wenn ich jetzt das Programm ausführe, stürtzt es immer mal wieder in unregelmäßigen Abständen ab. Das eine mal beim aufrufen eines Menus und das andere mal, wenn ich das Programm beenden will.
Aber mein Problem ist jetzt ein ganz anderes. Um zu gucken warum er abstürtzt hab ich ihn einfach mal im Debugg-Modus von DEV-Cpp aus gestartet. Das merkwürdige daran ist aber, dass dann die Fehler nicht auftreten!
Ich bin mittlerweile mit meinen Nerven so gut wie am Ende, weil ich mir einfach nicht vorstellen kann, warum das Programm beim Debuggen Problemlos läuft, aber wenn ich es so ausführe nicht.Irgendeine Idee von euch?
In 99 von 100 Fällen liegt das an nicht initialisierten Zeigern/Variablen usw.
Falsch:
bool a;Richtig
bool a = false;Im ersten Fall hast du eine 50:50 Chance das der Startwert von a true ist, oder false. Entsprechend evrhält sich dein Programm dann unterschiedliche.
Die meisten Debugger initialisieren alle variablen für Dich, sobald Du aber im Release-Mode compilierst liegt es wieder an Dir ob Du nun sauber programmeirt hast oder schlampig mit deinen Variable-Initialisierungen warst.
Die Regel:
Jede variabel, jeden Zeiger, ALLES initialisieren.
-
Danke für die Antworten, ich werd das gleich mal überprüfen
