Laufzeitfehler im Debugmodus



  • Hallo Leute, ich nutze VS2010 und habe das Problem, dass mein Programm im Releasemodus einwandfrei funktioniert, aber im Dubugmodus einen Laufzeitfehler verursacht. (Speicherzugriff auserhalb eines Vectors) Er zeigt mir aber nicht den Ort des Fehlers an.

    Die Frage ist nun, woran es liegen könnte, dass das Programm im Releasemodus funktioniert, aber nicht im Debugmodus?

    Könnte es vielleicht an der Lazy Evaluation im Releasemodus liegen, welcher im Debugmodus nicht berücksichtigt wird (falls das so sein sollte)? Andere Ideen habe ich grad nicht..

    Auf den Code verzichte ich, da das Programm viel zu groß ist und ich den Fehler gar nciht lokalisieren kann.

    Besten Dank


  • Mod

    Im Debugmode gibt es weit ausmehr Prüfungen. Variablen werden initialisiert...

    Was sagt der Debugger und der Callstack?



  • Also der Debuger verweist auf ::_CrtDbgBreak();

    message: vector subscript out of range

    file: ..microsoft visual studio 10.0\vc\include\vector

    line: 932

    Aber daraus kann ich nciht auf meinen Quellcode schließen?!



  • aru schrieb:

    Aber daraus kann ich nciht auf meinen Quellcode schließen?!

    Deshalb fragte Martin Richter ja auch nach dem Callstack.



  • Bei mir ist das Gleich passiert.
    Da ist das Programm mit der Nachrichtenschleife kollidiert.
    Wie folgt:
    Das Programm hat einen Fortschrittsbalken Kreiert und darin eine Nachrichtenschleife gestartet, mit diesem "DispatchMessage()".
    Da ging der Debugger noch drüber. Auch die ganze Methode, in der das stattfand,
    konnte noch problemlos verlassen werden. Der Debugger ist dann in
    der MFC verschwunden, und irgend wann viel später hats gekracht.

    Die Nachrichtenschleife war da eigentlich unnötig.
    Hab sie rausgenommen, und es lief auch im Debugger.



  • Ok vielen Dank für die Antworten. Der Tipp mit dem Callstack, hat mir geholfen das Problem zu finden und zu lösen. War ein fehlerhafter Vectorzugriff im Schleifenkopf.


Anmelden zum Antworten