Programm funktioniert beim Debuggen, beim Ausführen nicht?



  • Hallo;

    Ich hab ein interessantes Problem:
    Mein Programm hat zu viele Zeilen an Code, daher versuche ich das Problem zu beschreiben. Mein Code funktioniert beim Debuggen einwandfrei ohne Fehler.
    Kaum führe ich es in Code::Blocks aus produziert es eine Endlosschleife.

    Hat jemand dieses Problem schon einmal gehabt?
    Kann man hier in diesem Forum irgendwie Daten anhängen?
    Ich hab 6 C und h Files, ich kann das einfach nicht raufstellen, die Seite ist zu koein dafür?

    Danke



  • Der übliche Verdächtige sind nicht-initialisierte Variablen (die werden beim Debug meist mit leicht erkennbaren Werten gefüllt, während im Release nur der Stack entsprechend vergrößert wird).



  • Nutze einfach den Debugger und du kannst feststellen, wo das Problem ist.
    Viele Compiler initialisieren lokale Variablen mit 0 in der Debug-Version, in der Release-Version hingegen nicht.
    Auf diesen oder ähnliche Fehler wird es wahrscheinlich hinauslaufen.
    ➡ einfach mal debuggen.



  • ich debugge schin den ganzen tag und pustekuchen!
    ich habe schon alle Zeilen debuggt und verzweifle gerade.
    das mit dem initialisiern werde ich ausprobieren



  • Aber der Debugger bleibt doch genau an der Stelle stehen, an der es kracht. Anschließend kannst du dir den Call-Stack ansehen und sehr genau eingrenzen, wo das Problem ist.



  • Wenn du es sowieso noch in der IDE laufen lässt, kannst du doch warten bis zu der Endlosschleife und dann das Programm dort anhalten - da bist du eventuell ein paar Call-Ebenen zu tief, aber auf jeden Fall in dem Code-Abschnitt, der die Probleme verursacht.



  • Es wird Dir keiner kostenlos ein paat tausend Zeilen durchgucken außer dem Compiler. Die Option -Wall ist bei C- Compilern üblicherweise vorhanden. Beim Durchklicken in einer IDE findest Du sie üblicherweise unter Project Options/Properties/Compiler - all warnings on.
    Wenn Du alle Warnings *in der source* plattgemacht hast und es geht immer noch nicht, melde Dich nochmal.



  • @pointercrash(): es sind keine 1000 zielen code!!

    @yahendrik: eben nicht! der debugger beendet das programm plangenäß und schließt es auch. Deswegen melde ich mich ja, der Debugger stellt keine Probleme fest. Wenn ich auf Run klicke stürtzt es ab.



  • Du kannst auch Release-Versionen debuggen. Für den MSVC könnte ich dir sagen, was du tun musst, mit dem gcc/Code::Blocks kenne ich mich nicht gut genug aus.


Anmelden zum Antworten