Fehler in der Release-Version

buschke

Mitglied
Hallo!
Ich habe ein Programm geschrieben (MFC Dialogfeldbasierend), welches im Debug-Modus einwandfrei funktioniert. Im Release-Modus kommt direkt eine Fehlermeldung und ich bekomme diesen Standarddialog von Windows XP, ob ich den Fehler senden will. Hab schon mal eine Messagebox an den Anfang der InitInstance()-Funktion gesetzt, aber soweit kommt das Programm gar nicht. Hat jemand eine Ahnung, woran das liegen könnte?
Und wo ich grade dabei bin: Ein anderes Programm von mir funktioniert auf meiner Laptop (Medion) nicht im Debug-Modus. Im Release-Modus läuft es und auf anderen Rechnern, auch auf anderen Laptops, laufen beide Modi. Das kann ich mir nun überhaupt nicht erklären. Weiß da jemand Rat? Danke schon mal
buschke
 
Wenn Release nicht läuft, Debug aber schon, ist das üblicherweise ein Problem mit dem Initialisieren von Variablen.

Zur Erinnerung: In Release werden Variablen NICHT initialisiert, in Debug werden sie üblicherweise auf bestimmte Debug-Werte gesetzt (uninitialisierte Member-Variablen auf 0xcdcdcdcd zum Beispiel).

Wenn Debug nicht läuft, aber Release schon, dann liegt das meistens an den fehlenden Debug-Bibliotheken. Das soll auch so sein, Debug ist zum Debuggen; die Debug-Bibliotheken werden nur mit einem Entwicklungssystem mitinstalliert. Zum Weitergeben IMMER Release verwenden.
 
kann ich irgendwie herausbekommen, welche Variablen nicht initialisiert wurden? Wenn dieser Fehler direkt am Anfang auftritt, welche Variablen können denn dann schon betroffen sein? Doch nur die globalen, oder?

zu "Debug läuft nicht": also ein Entwicklungssystem habe ich drauf und bei allen anderen Programmen funktioniert es auch auf meinem Laptop. Ein Freund hatte sich das Programm mal angesehen, ein paar Änderungen vorgenommen, kompiliert und mir wieder zurückgeschickt. Danach ging der Debug-Modus nicht mehr, davor schon. Könnte da das Problem liegen? Also neu kompiliert und gelinkt habe ich das Programm auf meinem Laptop schon, und das funktioniert auch. Der Fehler kommt erst, sobald ich das Programm starten will.
 
Wenn du einen halbwegs brauchbaren Compiler hast, müsste der bei einem Zugriff auf eine potentiell uninitialisierte Variable warnen (das klappt aber meistens nur in offensichtlichen Fällen). Ich würde einfach mal im Debug-Modus starten, ein bisschen anhalten und in den globalen Objekten (wenn der Crash denn vor der Main kommt) nach diesen Werten suchen.

Debug läuft nicht: Welcher Fehler kommt den? Ein Absturz oder eine Meldung, dass eine benötigte Bibliothek/DLL nicht gefunden wird?
 
Release läuft nicht:
Wenn das Programm schon vor InitInstance() austeigt, schaue dir mal den Kontruktor deiner App-Klasse an. Vielleicht liegt das Problem dort irgendwo.

Gruß
MCoder
 
Zurück