När jag kör vissa spel från hårddisken låser sig Windows med ett stoppfel efter några minuter. Det har också hänt En gång under tiden jag bränt en cd-skiva. Nästan uteslutande inträffar det alltså när jag spelar.
Detta händer varje gång jag spelar vissa spel och det börjar bli ganska irriterande. Stoppfelen varierar också och jag har ingen aning om vad felen beror på. Tidigare har det hjälp att uppgradera grafikkortsdrivrutinerna men nu kör jag med de senaste. Jag har läst att antivirus-program kan orsaka stoppfel och det verkar som att stoppfelet har bytts ut från 0xa till något annat efter att jag har stängt av Norton AntiVirus Auto-Protect, men jag är inte säker.
Finns det något man kan göra för att framför allt ta reda på vilken mjukvara eller hårdvara som orsakar felen? Just nu känns det som att jag bara kan installera om Windows eller köpa en ny dator. Fast det är ingen garanti för att jag inte får samma fel igen. :l
- Återgå till normalhastighet vid eventuell överklockning
- Nollställa BIOS
- Kontrollera att ingen fläkt har havererat och att alla komponenter kyls ordentligt
- Plocka ur all icke nödvändig hårdvara och se om felet är kvar
- Flytta minnesmoduler(na) till andra slotar
- Köra testprogram, t ex Memtest86
Jag tror att problemet kom tillsammans med nVidias senaste drivrutiner som jag även installerade efter ominstallationen av XP. Windows har ännu inte kraschat efter avinstallationen.
Om det beror på nVidia, vad ska man då göra? Köra på äldre drivrutiner och skriva ett klagomål?
Finns det något man kan göra för att framför allt ta reda på vilken mjukvara eller hårdvara som orsakar felen?
Kvarstår problemet? Om du kan hantera en debugger (eller är villig att lära dig) är bästa sättet att läsa in en minnesdump av crashen i en debugger.
Slå på så det genereras dump-filer av minnet vid crash. I Windows XP: Kontrollpanelen, "System", "Advanced", "Startup and Recovery". Välj "Complete Memory Dump" under "Write debugging information" (tror man måste boota om för att denna setting ska ta effekt).
Vänta tills datorn crashar. Vid crashen skapas filen "%windir%\memory.dmp" (något som kan ta flera minuter, och man ser progress på blåskärmen när detta sker). Den innehåller en komplett minnesdump då crashen inträffade. Man behöver en debugger för att läsa denna.
Starta "windbg" som installerats under startmenyn. I File-menyn, välj "Open crash dump". Leta rätt på c:\windows\memory.dmp (du har säkert andra programdumpar i c:\windows\minudump om du är intresserad av att lära dig hur dessa fungerar).
Användargränssnittet på windbg (uttalas "windbägg") ger ganska mycket information och kan vara lite rörigt i början, men i mitt tycke den överlägset bästa debuggern för crash och minnesrelaterade problem i Windows. Du har ett fönster som heter "command" (som du kan öppna med Alt-1 om det är stängt).
Längst ner i det finns en inmatningsruta (command line). När den är vit kan du ge kommandon, då den är grå är windbg upptaget med något annat. Skriv i command-line rutan:
.sympath SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
(utan ) och tryck sedan enter. Eventuellt kommer något annat fönster fram. Gå tillbaka till Command-fönstret isåfall.
Du har nu sagt åt windbg var den ska ladda hem debug-information när sådan behövs. Sån info behövs för att man från dumpen exempelvis ska kunna se modul och funktionsnamn i callstacken från crashen.
Det enklaste är att du nu börjar med att ladda alla symboler. Det tar många minuter, eftersom mycket data hämtas från Microsoft. Alla symboler laddar man hem genom att skriva ".reload /f" och trycka enter.
Vill man under symbol-laddningen ha information om vad som händer kan man först skriva "!sym noisy".
När symbolerna laddads klart är det bara att börja titta på vad som gått fel. Lyckligtvis har Microsoft gjort det relativt enkelt. Man skriver "!analyze -v" för få en snabb överblick vad som gått fel. Oftast räcker det för att avgöra vilken drivrutin som felar.
Ser man "DEFAULT_BUCKET_ID: DRIVER_FAULT", indikerar detta fel på en drivrutin. Sedan står det under IMAGE_NAME vad drivrutinen heter.
Hjälpen till windbg är flera timmars utomordentligt bra läsning.
Tack för ditt långa inlägg, developer. Jag ska försöka mig på det nästa gång det blir stoppfel. Kan det räcka med en minidump och går det inte bra med Visual Studio? Du vet troligen att jag är utvecklare eftersom jag figurerar en del i programmeringsforumen. Jag kan hantera en debugger men föredrar grafiska sådana.
Det har, som du troligen förstått, inte blivit något mer stoppfel sen jag skrev mitt förra inlägg. Det var nVidias drivrutiner som orsakade felen och jag undrar fortfarande vad jag ska göra åt det, då jag gärna vill ha de senaste drivrutinerna installerade istället för Windows egna. Point of View (grafikkortstillverkaren) har inga egna drivrutiner.
Jodå, jag vet att du är utvecklare (annars hade jag aldrig orkat skriva så långt ;)).
Ja, minidumpar räcker i många fall, de visar callstacken. Minidumparna är uppfunna främst till när man väljer "Send Error Report" när program eller drivrutiner crashar, annars skulle det bli olidligt mycket att skicka.
windbg är grafisk (det finns en konsol-motsvarighet som heter cdb), men inte lika enkel som visual studio.
VS.Net kan faktiskt läsa dump-filer, men jag tycker VS.Net är mycket osmidigare att jobba med när man använder en symbolserver.
Det är nog bara att vänta på nvidias nästa uppdatering och hoppas på att den löser problemen. Om du skickar en felrapport ("Send Error Report...") när problemet händer kommer nvidia få reda på crashen.
130 ms totalt · 3 externa anrop · v20260731065814-full.b746b907