Seite 3 von 3

Verfasst: 21.06.2005 15:57
von Erwin
125 hat geschrieben:Da steht doch nichts mit mitgliedschaft,
les mal seite 1-3 ;)

mfg
125
Also bei mir steht dort leider auf allen 3 Seiten:
???
Wolte hier das Zitat reinkopieren, als ich aber auf einmal feststellt, das dort was anderes stand (also der Text, den ich hier reinkopierte, war ein anderer), als das, was ich gelesen und zu kopieren geglaubt habe.
:cry:
Mein Browser spinnt ... .
Das hat mir gerade noch gefehlt.

Verfasst: 21.06.2005 16:03
von 125
Hi,
Bluescreen beseitigen
FEHLERHAFTE TREIBER AUFFINDEN UND ENTFERNEN

Stoppt Windows 2000 oder XP mit einem Blue-Screen, dann ist meist ein fehlerhafter Treiber der schuldige. Doch wie wird man den wieder los? Nur bösartige Menschen beantworten das mit Formatieren und neu installieren - denn Windows bietet durchaus die Möglichkeit den Schuldigen zu finden und zu entfernen.
(Stand vom: 14.12.2004)

Man kennt das Problem: Windows XP oder 2000 startet erst nicht oder stürzt im Betrieb mit einem 'BlueScreen' ab. Zugegebenermassen sind diese Probleme deutlich seltener geworden - und meist ist ein Treiber eines Drittherstellers der Schuldige - aber dieses Wissen hilft nicht viel, wenn der Rechner nicht mehr laufen mag: Ein IRQ_LESS_OR_EQUAL am Bildschirm ist eben einfach kein passender Hilfetext um das Problem zu finden.


Das muss aber gar nicht so sein, denn Windows stellt eigentlich alle Mechanismen zur Verfügung um den Schuldigen einzukreisen, aufzuspüren und zu beseitigen. Und das geht so:

Zunächst brauchen Sie einen 'Kernel Dump'. Dabei handelt es sich um einen Auszug von Speicher- und Registerinformationen Ihres Rechners. Sie müssen dabei gar nicht verstehen was die Informationen bedeuten - zunächst ist es nur notwendig dieses Ding einmal zu produzieren.

Dazu klicken Sie in der Systemsteuerung auf 'System' und dort auf den Reiter 'Erweitert'. Darin befindet sich ein Button für die Einstellungen zu 'Starten und Wiederherstellen'. Der öffnet einen entsprechenden Dialog.

Im unteren Bereich können Sie nun einstellen welche Debuginformationen gespeichert werden sollen. Hier schalten Sie auf 'Vollständiges Speicherabbild'. Stellen Sie außerdem einen Pfad für die Dump-Datei ein, und schalten Sie die Option 'Vorhandene Dateien überschreiben' aus.

Jetzt wird es etwas technisch - aber keine Angst: Schwierig ist das nicht.

Wenn Ihr Windows nun aufgrund eines Fehlerhaften Treibers per Blue-Screen abstürzt, dann wird dabei eine Dump-Datei an der von Ihnen angegebenen Stelle angelegt. Die muss nun ausgewertet werden.

Dasw Problem dabei: Die Dump-Datei enthält ausschliesslich Daten, die eigentlich nur Programmierer mit den richtigen Tools auswerten können - und Sie sind vermutlich weder Programmierer, noch haben Sie die richtigen Tools. Doch keine Bange: Mit der folgenden Anleitung kommen Sie trotzdem ans Ziel.

Zunächst brauchen Sie dazu ein mächtiges Werkzeug - den Kernel Debugger. Den gibts von Microsoft hier kostenlos zum download. Das Programm laden Sie einfach herunter und installieren es.

Danach legen Sie eine Ordner namens 'symbols' auf der 'C' Platte an - also 'c:\symbols' und starten dann WinDbg.exe.

Damit WinDbg etwas mit den Daten anfangen kann die sich im Kernel-Dump befinden braucht es zusätzliche Informations-Dateien: Die müssen Sie nun ebenfalls von Microsoft runterladen. Das Problem: Diese Daten müssen zu Ihrer Version von Windows inkl. aller Patches und Updates passen - das ist nicht immer ganz einfach zu verwalten. Dankbarerweise geht die Sache aber (fast) automatisch.

Sie wählen dazu im Menu 'File' den Befehl 'Symbol File Path' und geben als Angabe das folgende ein:

SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

Ist der Pfad eingegeben, wählen Sie 'Reload' aus und klicken Sie 'OK' an.

Ist das erledigt wählen Sie im 'File' Menü den Befehl 'Open Crash Dump' aus. Der ermöglicht das Laden der Kernel-Dump Datei - und die finden Sie an der Stelle, die Sie bei 'Starten und Wiederherstellen' selbst angegeben haben.

WinDbg beginnt dann damit die Dump-Datei zu laden und passende 'Symboldateien' vom Microsoft-Server herunterzuladen: Dessen Pfad haben Sie zuvor extra eingegeben. Danach füllt sich das Fenster von WinDbg mit Daten: Die meisten davon werden Ihnen vermutlich gar nichts sagen. Das ist nicht dramatisch - Gehen Sie einfach in das Kommandozeilen-Fenster von WinDbg und geben Sie dort den folgenden Befehl ein:
!analyze -v

Das wars: WinDbg beginnt nun mit der Analyse des Dump und zeigt alle Möglichen - ebenfalls für Nicht-Programmierer unverständliche - Informationen an. Die einzige die Sie aber interessiert ist eine Zeile mit dem Text:

Probably caused by : abcDriver.sys ( abcDriver+4f20 )

Dabei steht 'abcDriver' für den Namen eines Treibers auf Ihrem System.

Voila: Der Böse ist gefunden, denn dieser Treiber ist mit an Sicherheit grenzender Wahrscheinlichkeit der Verursacher des Blue-Screen. Es gilt also nur noch diese Bösewicht loszuwerden.

Wenn es sich um einen Treiber handelt der von Software 'OnDemand' geladen wird ist das kein Problem: Sie entfernen die Software, und der Treiber verschwindet von selbst. Wird der Treiber aber beim booten geladen ist die Sache schwieriger - Sie brauchen die 'Recovery Console'.

Die bekommen Sie in Form den Windows 2000 oder XP Boot-CD. Einfach einlegen und booten - Sie werden dann nach dem gewünschten Vorgang gefragt und starten die 'Recover Konsole'.

Kurz danach fragt Windows dann nach dem administrativen Passwort - das müssen Sie auch kennen und eingeben. Schließlich landen Sie in einem Kommandozeilenfenster.

Alles was Sie dort noch tun müssen ist das folgende Kommando einzugeben:
net stop NameDesTreibers

- wobei 'NameDesTreibers' der Name ist, den Sie zuvor mit WinDbg ermittelt haben.

Und schon ist der BlueScreen entfernt.

Verfasst: 21.06.2005 18:25
von Captn. Jinguji
Danke 125.
Komme grad erst von der Arbeit nach Hause, konnte es also noch nicht selbst hier hereinstellen. Allerdings bin ich mir auch nicht ganz sicher, ob eine "Vollkopie" so in Ordnung ist. ;)
Zumindest sollte man nochmals drauf hinweisen, dass dieser, wie ich finde, leichtverständlich geschriebene und hilfreiche Beitrag von www.nickles.de zitiert wurde. ;-) Ehre wem Ehre gebührt.

@Erwin: Ja scheint mir auch dass Dein Browser Probleme hat. Ansonsten kann ich aus meiner persönlichen Erfahrung sagen, dass ich mich vor Jahren schon bei Nickles für einen Forenzugang angemeldet, aber nie SPAM Probleme und die Anmeldung daher auch ganz vergessen hatte. Aber 125s Erfahrung zeigt ja, dass man sich gar nicht anmelden muss. Ich habe auch garantiert keine Cookies für Nickles herumliegen.
Aber den wesentlichen Text hast Du ja dank 125 sowieso.

Verfasst: 21.06.2005 19:16
von Erwin
Danke 125.
Allerdings mit Kopieren habe ich inzwischen den Text auch zustande bekommen.
Leider ... liest sich für mich das alles recht gefährlich.
Da soll ich also was von MS runterladen, der dann irgendwas macht?
...
Ich bin froh, wenn jedesmal der Absturzversuch von XP scheitert (der tut nämlich alle 1-2 Stunden auf der Festplatte rumwerkeln, und wenn ich in dem gleichen Augenblick was großes laufen habe ... 2 mal hat es sich schon aufgehängt.).

Oh, komme langsam vom Thema ab.
Was mich halt wundert, das ander Turitoral geht (Vollbildmudus).
Hinzu kommt, das ich das andere, 'fehlerhafte ?' Turitoral nicht auf Fenster umschreiben kann.
Hm... warum geht das eine, und das andere nicht?
Werde noch mal testen.
Auf ein neuen Driverfehler.

Edit:
So, da bin ich wieder.
Ich habe also den Bildschirmdartstellungscode von dem mitgeliefertem Turitoral in das andere Eingefügt.
Das Resultat war interessant.
Es ging fast gar nichts.
Es dauerte 2-3 Minuten bis der Taskmanager erschien.
CPU-Auslastung: 100 %??
Der Debugger wechselte zwischen wird ausgeführt und keine Rückmeldung
Das Vollbild: Keine Rückmeldung
PureBasic selbst: Wird ausgeführt.

Anscheinend ist entweder mein Computer zu langsam (P III, 650 MHz, 256 RAM), was aber nicht sein kann, oder?
Oder ... ich habe mir einiges eingefangen. *zensiert*
Naja, in dem Fall bin ich hier verkehrt und müßte mich mal nach einem Forum umsehen, wo es Hauptsächlich darum geht, solchen Abfall loszubekommen.

Verfasst: 21.06.2005 20:54
von 125
Hi,
du kannste mal ganz genau beschreiben welche probleme jetzt vorliegen, dann versuch ich mal zu gucken wo das Problem liegt.
Zu 100 % CPU: bau ma in der Haupschleife ein Delay(1) ein :)

Verfasst: 21.06.2005 22:43
von Erwin
125 hat geschrieben:Hi,
du kannste mal ganz genau beschreiben welche probleme jetzt vorliegen, dann versuch ich mal zu gucken wo das Problem liegt.
Zu 100 % CPU: bau ma in der Haupschleife ein Delay(1) ein :)
Genau beschreiben?
Was nicht, was ich da noch genauer beschreiben soll.
Ich gehe her, tauschte den Teil mit dem Screen aus, was sich auf die Auflösung und der Farbtife auswirkte, und lies es laufen, den Code.
Und dann wurde es schwarz.
ESC unterbrach das ganze nicht, was es aber hätt tun sollen.
Dann rufte ich den Taskmanager auf, welcher erst nach ca. 2-3 Minuten erschien.
Denn Rest habe ich schon weiter oben beschrieben.
Delay(1)?
Wozu?
Und wo soll ich den einfügen? Anstelle des ESC-Abbruchs?
Aber ich tippe überhaupt immer mehr darauf, daß ich mir was eingefangen habe.
Weil das eine Funktionierte (Vollbild), das andere nicht. Weis nicht. Sind einfach zu viele ungereimtheiten, als das es nur am Driver liegen kann, finde ich.

Edit:
Habe das Delay(1) in die 3. Zeile von unten eingesetzt.
Hm... komisch.
ESC hat funktioniert, aber nicht auf anhieb.
Ich mußte länger drauf bleiben. Und beendete das Screen irgendwie unberechenbar.
Achja, in der Version, wo es zumindest keinen Diverfehler meldet, hattte es eine Auflösung ... (.. OpenScreen(640,480,16,"Vollbild") ...). Also 640x480 bei 16 Bit-Farben.

Verfasst: 22.06.2005 07:24
von 125
Hi,
Ok, also das Delay muss ins Repeat :) Ist dafür da das er bevor er den nächsten PRogrammdurchlauf macht 1 ms wartet so wird deine CPU nicht auf 100 % ausgelastet :)
Zu den niedrigen Auflösungen: Welche Grafikkarte hast du und von wann sind die Treiber? Und wie ist deine directx version? (Start->Ausführen->DXDiag)

So geht der Code ohne Probleme bei mir:

Code: Alles auswählen

If InitSprite() = 0                                                ; Wenn wir die Sprite Funktion nicht initialisieren koennen, 
  MessageRequester("Fehler","Konnte dx nicht finden",0)            ; wird ein Fehler gemeldet, der die moegliche Ursache ausgibt. 
EndIf                                                              ; Ende der Abfrage 

; Nun wollen wir auch die Escape Taste benutzen. Das uebernimmt nun auch DirectX (DirectInput) 
If InitKeyboard()=0                                                ; Wenn wir die Keyboard Funktion nicht initialisieren koennen, 
  MessageRequester("Fehler","Konnte dx nicht finden",0)            ; wird ein Fehler gemeldet, der die moegliche Ursache ausgibt. 
EndIf                                                              ; ende der abfrage 

; Jetzt wollen wir den Vollbild Modus erstellen 
If OpenScreen(800,600,32,"Vollbild") = 0                           ; Wenn "Oeffne ein Vollbild" aus ist ( = nicht moeglich ist), 
  MessageRequester("Fehler","Konnte kein Vollbild erstellen ",0)   ; wird eine Fehlermeldung ausgegeben. 
EndIf                                                              ; Ende der Abfrage 

Repeat            
  Delay(1)                                   ; In der Schleife werden die ganzen Aktionen durchgefuehrt. 
  ClearScreen(0,0,0)                                 ; Wir "saeubern" den Screen (Bildschirm) mit einer schwarzen Farbe. 
  ExamineKeyboard()                                  ; Um Keyboard Tasten funktionstuechtig zu machen, MUSS diese Funktion davor stehen... 
  If KeyboardPushed(#PB_Key_Escape)                  ; Wenn die Taste Escape gedrueckt wird, 
    End                                              ; wird das Programm beendet. 
  EndIf                                              ; Ende der Abfrage 
ForEver     

mfg
125

Verfasst: 22.06.2005 17:51
von Erwin
Du kennst Dich aus, 125. :allright:

Habe Deinen geänderten Code hergenommen.
Zuerst habe ich mich aber, was die Bildschimeinstellungen betrifft, an das Ganze herran getastet.
Aber zuletzt machte selbst 800 x 600 bei 32 Farbtiefe keinen Ärger mehr.
Auch funtkionierte die Unterbrechung sofort.

Hm.. das läßt mich vermuten, daß die Wiederholung der Schleife dermaßen schnell abläuft, daß der CPU zu stark ausgelastet ist.
Und als es noh eine Taste verarbeiten solte, dies dann langsam zur Folge hatte, daß er vielleicht selbständig den Grafik (oder auch alle?) Driver abgeschalten hat, um mehr CPU frei zu bekommen.
Und dann kam halt die Fehlermeldung (dessen Inhalt falsch war. Aber das kenn man ja von MS).

Was sind eigentlich die Vorrausetzung von PureBasic?

PS: Und wieso braucht XP allein bereits über 80 MB Ram Arbeitsspeicher?