Program som genererar fel i Win2000

Windows

13 svar · 313 visningar · startad av mott

Medlem sedan juni 20001 356 inlägg
Trådstart#1

När ett program kraschar så står det ju något i stil med "Illustrator.exe har genererat ett fel och kommer att avslutas".

Visst, det är "helt OK", men saken är den att efter den rutan visat sig så arbetar hårddisken febrilt i ungefär två minuter (och det är ingen överdrift!) innan programmet ens stängs. Under den tiden är det nästan omöjligt att arbeta med datorn eftersom muspekaren hackar och allt går segt.

Kan man inte ställa in så att den inte dumpar arbetsminnet eller vad det nu är den gör som är så *#!¤%"%& hårddiskkrävande??

Medlem sedan juli 2000534 inlägg
#2

Visst kan du det

Control Panel -> System -> Advanced -> Startup And Recovery

Medlem sedan juni 20001 356 inlägg
#3

Där har jag redan ställt in följande för länge sedan:

EJ skriva en händelse i systemloggen
EJ skicka en administrativ varning
EJ starta om automatiskt

Skriv felsökningsinformation: (Ingen)

---

Något jag gjort fel?? :(

Medlem sedan juni 20001 356 inlägg
#4

Bara jag som har det här problemet eller?

Morph, hur har du ställt in det och avslutas program fort när de hänger sig i ditt Win2000?

Medlem sedan dec. 20003 083 inlägg
#5

Gå in på program/tillbehör/systemverktyg >> systeminformation, gå in på menyn "verktyg" >> windows >> "DR Watson", klicka på den, nu får du en liten inställningspanel, klicka bort samtliga som är ikryssade, klicka på "ok" -sådär, klart! :e

Medlem sedan juni 20001 356 inlägg
#6

Yippie! *skriver upp i anteckningsblocket*

Tack!

Medlem sedan dec. 199917 055 inlägg
#7

Men kom inte hit sen och be om hjälp... ;)
Det du precis har stängt av är A och O vid en felsökning - bara så du vet. :)

Medlem sedan juni 20001 356 inlägg
#8

Jo, jag vet, men jag klarade mig utmärkt utan det i Windows 98, så jag klarar mig så bra så utan det i Win 2000 med... ;)

Medlem sedan dec. 20003 083 inlägg
#9

Det du precis har stängt av är A och O vid en felsökning - bara så du vet.

Hm, jo -och det är ju så ofta som vanliga användare får någonting vettigt ut av dom där dumparna (läs:inte hårdingar som du och jag) ;)

Medlem sedan mars 200170 inlägg
#10

Var kan jag finna information om hur man läser ur dumparna och får fram lite mer förstålig data?

Medlem sedan dec. 20003 083 inlägg
#11

Jag använder själv MS egen Debugger för detta, finns här;
http://www.microsoft.com/downloads/release.asp?releaseid=18937

OBS! bara för Windows 2000.

Medlem sedan juni 20001 356 inlägg
#12

blank

Medlem sedan feb. 200115 571 inlägg
#13

Var kan jag finna information om hur man läser ur dumparna och får fram lite mer förstålig data?

Kom på ett sätt att penetrera Rikards hjärna och ta en skärmdumt på det så har du rubbet. :e
Det är på gränsen till onormalt att kunna det han kan har jag märkt. ;)

Medlem sedan aug. 2001458 inlägg
#14

Dumparna är nästan alltid helt värdelösa om exempelvis "Illustrator.exe" kraschar. Det är alltid buggar i programmen (pga undermåliga tester innnan de släpps). Man kan se att det programmet läser från eller skriver till minne som den inte äger, typiskt NULL. Men det är bara assembly-kod man kan studera, och det är värdelöst.

Dumpar är däremot extremt viktig felsökningshjälp i egna program. Anta man själv har ett program ute hos en kund och har ställt in Dr Watson på "Create Crash Dump Files" på kundens dator. När man får .dmp, är det viktigt att ha kvar alla .dll:er .exe-filer samt symbolerna (.pdb) till dessa och förstås matchande källkod.

Då kan man ladda in detta i efterhand i windbg (Microsofts debugger http://www.microsoft.com/ddk/debugging) och få fram exakt var det crashade samt call-stack och se variabler, register etc. och på så sätt se vad som hänt.
Man bör installera symboler till OS:et, finns att hämta på http://www.microsoft.com/windows2000/downloads/servicepacks/sp2/debug eller vilket service pack man nu har. Det underlättar debuggningen genom att man kan se bättre vad som hänt nere i MS dll:er (kernel32.dll osv).

Man installerar symboler och windbg. Ställ in drwtson på att generera dump-filer, se http://support.microsoft.com/support/kb/articles/Q121/4/34.asp , http://msdn.microsoft.com/library/default.asp?url=/library/en-us/regentry/11500.asp och http://msdn.microsoft.com/library/default.asp?url=/library/en-us/regentry/1704.asp?frame=true .

Gör ett enkelt program som krashar, typ:

void main()
{
    printf("nu börjar det\n");
    char *p=0;
    *p='a'; // Aj, det här smäller
    printf("nu är det över\n");
}

Kör detta, och se till att du hittar var .dmp-filen hamnar (observera att du inte ska köra det under debuggern, eftersom den kommer att hugga second-chance exception då istället för dr watson).

Öppna windbg, välj "open crash dump". Ställ in symbol-path dit dina pdb:er ligger och source-code path där källkoden finns. Man måste eventuellt skriva .reload efter och trycka enter för att den ska hitta symbol-filerna. Sen kan du hitta call-stacks, klicka på den och hamna på källkoden där det smällde.

Man kan även med 'userdump' forcera .dmp-filer från en process som dead-lockar, och i efterhand titta vad den var i för state. http://support.microsoft.com/support/kb/articles/Q241/2/15.ASP

Enkelt va? ;-)

En bra bok om ämnet är John Robbin's "Debugging Applications", http://www.amazon.com/exec/obidos/ASIN/0735608865/qid=996795580/sr=2-1/ref=aps_sr_b_1_1/107-3764002-4642136

Hjälpen till windbg är inte heller att förakta, men lite tung i början.

[Redigerat av developer den 03 aug 2001]

[Redigerat av developer den 03 aug 2001]

395 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
118 ms — hämta statistik (db)
141 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)