Nach Reboot führt mein Code zu nem Bluescreen...!?
-
Hallo!
Habe mit meinem aktuellen SDL Projekt ein kleines Problem:
Jedesmal wenn ich meinen Rechner neugestartet habe und die EXE ausführe bekomme ich einen Bluescreen und es gibt einen automatischen Reset (oder ich bin gezwungen einen Hardcore-Reset zu machen
!, je nach dem).Ich habe mir nun eine total (!) simple Basis-Engine gebaut (in Anlehnung an das Buch "C++ für Spieleprogrammierer", wenn das jmd kennen sollte) die bisher noch nix kann ausser eben eine Hintergrundgrafik zu rendern und zu beenden wenn man ESC drückt.
Nun ist es so:
Folgendes Vorgehen funktioniert:
1. Ich starte Eclipse
2. Ich builde mein gesamtes Projekt -> keine Fehler
3. Ich gehe in den Ordner (Debugversion) mit der EXE und starte sie
-> läuft einwandfrei
(4. Starte ich die EXE zwei Stunden später wieder gehts immer noch)Folgendes Vorgehen führt zum Bluescreen:
1. Ich starte meinen Rechner (neu)
2. Ich gehe in den Ordner (Debugversion) mit der EXE und starte sie
-> Bluescreen, reset, Hardcorereset!!, #F$%x&!!!
Hat jemand ne Idee??

Bei Bedarf kann ich gerne mal den Code anhängen (is noch nich so viel, 4, 5 kleine Klassen vielleicht).Ich nutze: Windows Vista, SDL und Eclipse.
Danke danke danke danke !!
-
Was sagt der Debugger? Probiere es damit mal.
-
okay, musste jetzt erst mal den MinGW Debugger zum laufen bringen - hatte das bisher noch nie gemacht und insofern hat es sich schonmal dafür jetzt gelohnt hier zu posten :D!
Also ich habe jetzt mal das erste mal debugged und naja von Anfang an steht da sowas.......
jetzt kann ich nur beten dass ich mir jetzt nicht die totale Blamage leiste, und zwar
:
Ist der Dateiname "main.cpp" für die source-Datei in der die main() drin ist obligatorisch????
Denn mein Projekt hat keine main.cpp - ich hoffe dass man das nicht unbedingt braucht sonst hab ich da echt was verpennt *lach*....wenn das nich der Fall is muss ich noch weitersuchen im Debugger. Er brachte mir einfach gleich zu Beginn die rote Meldung "No source file named main.cpp. Previous frame inner to this frame (corrupt stack?) No source file named main.cpp."
weshalb ich dachte vielleicht isses das.
-
Lass dir nen Crashdump schreiben (kernel memory dump sollte reichen), und lade den mal in den WinDBG.
Davor solltest du vermutlich noch den Symbol-Server konfigurieren, damit WinDBG mit dem Kernelmode-Stacktrace auch was anfangen kann.Informationen zum "wie" diesbezüglich findest du leicht im Netz.
Bluescreen heisst eigentlich immer dass ein Treiber defekt ist. Das Problem solltest du mal zuerst beheben, also wie oben beschrieben rausfinden welcher Treiber schuld ist, Treiber updaten etc. - mit etwas Glück haste den BSOD dann mal weg. Und dann siehst du ja was los ist, entweder es geht dann, oder du bekommst nen Fehler OHNE dass dir Windows gleich um die Ohren fliegt.
Und nein, es muss keine Datei namens "main.cpp" geben. Vermutlich gabs aber irgendwo eine, der Name steht jetzt in irgendwelchen Debug-Info Files, und deswegen sucht Eclipse danach. Bau das Projekt mal komplett neu, und lösch vorher die ganzen Temp-Verzeichnisse.
-
Also..
meine Treiber habe ich jetzt mal aktuallisiert - einen "defekten" Treiber oder einer der Probleme macht konnte ich dabei nicht finden.
Zu aktuallisieren war ausserdem nur ein Treiber - die Grafikkarte. Alle anderen werden von Windows als "auf dem neuesten Stand" bewertet wenn ich die Aktuallisierung durchlaufen lasse.Mit neuem Graka-Treiber + nach Reboot besteht das Problem weiterhin. Das Programm funzt immer erst nachdem ich über eclipse den build nochmal durchlaufen lasse...
!Also das mit Crashdump und Symbol-Server - hab mich da jetzt mal ne weile umgeschaut und einiges nachgelesen, bzw. angeguckt. Aber echt, das is für mich Chinesisch, hab von Hardwarezeug nicht so viel Ahnung.
Es muss doch auch noch nen anderen Weg geben, dahinterzukommen wo das Problem liegt!!
-
Klingt wirklich nach Treiber- oder Hardwaredefekt.
Ist es an anderen Computern das selbe? Ich möchte fast wetten dass es nicht so ist.
Wenn es auf anderen PCs läuft, könntest du eine Neuinstallation von Windows versuchen. Wenn es dann immer noch nicht geht, wird es an der Hardware liegen.
-
Es muss doch auch noch nen anderen Weg geben, dahinterzukommen wo das Problem liegt!!
Naja, du kannst mal schauen ob du irgendwelche brauchbaren Informationen aus dem Blue-Screen selbst rauslesen kannst. Also z.B. das Modul (".SYS File") in dem das Problem verursacht wurde, den genauen Crash-Code (die 8-Stellige Hex-Zahl) etc. Wenn kein Modul angegeben ist, oder ein Windows-eigenes Module, dann hast du Pech.
Mit etwas Glück kannst du anhand dieser Informationen schon draufkommen wo der Fehler inetwa liegt.
Oder probiers wie The-Kenny vorschlägt auf einem anderen PC. Vielleicht Crasht dort nicht gleich das ganze Windows, sondern vielleicht nur dein Prozess. Dann könntest du dort versuchen dein Programm zu debuggen, bzw. dir einen Dump deines Programms schreiben lassen, den mit nach Hause nehmen, und in den Debugger laden.
-
SUUPPPPPEEEEEERRRRR 
Danke!!! Für den Tipp mit dem anderen Rechner - wär ich jetzt tatsächlich erst mal nich selbst draufgekommen auf die Idee, obwohl es so was simples ist und auch so nahe liegt ^^ aber wie man so schön sagt: man sieht vor lauter Bäumen den Wald nicht!
Habs jetzt eben ausprobiert auf nem anderen PC und tatsächlich - es läuft!
Das heißt es liegt auf jeden Fall tatsächlich an meinem Rechner.Das mit der Windows-neuinstallation werd ich dann bei Gelegenheit mal machen - aber vor allem heist dieses Ergebnis des Testes jetzt für mich dass 1. nich mein Code verbugt ist und 2. ich jetzt erst mal in Ruhe weitercoden kann :)! Das ist so eine ERLÖÖÖSSUUNG

Super, DANKE Leute!

-
Nochmal zum Thema:
Hier mal das was mir Windows (Vista) als Problembericht nach dem Bluescreen, bzw. Reboot bringt:
Problemsignatur:
Problemereignisname: BlueScreen
Betriebsystemversion: 6.0.6001.2.1.0.768.3
Gebietsschema-ID: 1031Zusatzinformationen zum Problem:
BCCode: f4
BCP1: 00000003
BCP2: 86411BE8
BCP3: 86411D34
BCP4: 8205A430
OS Version: 6_0_6001
Service Pack: 1_0
Product: 768_1Wobei die "Zusatzinformationen zum Problem" so scheint mir lediglich eine Auflistung der Daten meiner Rechnerarchitektur ist.
Ausserdem werde ich auf eine Datei C:\Windows\Minidump\Mini022309-01.dmp verwiesen - kann ich diese in meinem Debugger nutzen?! Wenn ja, WIE? Hab grade schon rumprobiert aber weiss nichw as damit anfangen...
-
http://msdn.microsoft.com/en-us/library/ms797140.aspx
Den Dump könntest du z.B. in den Debugger "WinDbg" laden...