2016-12-01 2 views
1

Ich habe oft BSODs und WinDbg berichten über ähnliche Korruption für die meisten von ihnenWelche Korruption wird von WinDbg und! Chkimg angezeigt?

4: kd> !chkimg -lo 50 -d !nt 
    fffff80177723e6d-fffff80177723e6e 2 bytes - nt!MiPurgeZeroList+6d 
    [ 80 fa:00 e9 ] 
2 errors : !nt (fffff80177723e6d-fffff80177723e6e) 

und

CHKIMG_EXTENSION: !chkimg -lo 50 -d !nt 
    fffff8021531ae6d-fffff8021531ae6e 2 bytes - nt!MiPurgeZeroList+6d 
    [ 80 fa:00 aa ] 
2 errors : !nt (fffff8021531ae6d-fffff8021531ae6e) 

Was ist das? Was mit was verglichen wird und wie kann es sein, dass Korruption ähnlich ist? Gibt es explizit RAM-Problem an?

UPDATE

Was bedeuten diese Zahlen? fffff80177723e6d und fffff8021531ae6d? Was bedeutet es, dass Endungen zusammenfallen?

Was bedeutet der folgende Code: nt!MiPurgeZeroList+6d?

+0

MiPurgeZeroList ist eine Funktion des Speichermanagers, Speicher zu löschen, um Speicherseiten in freie oder Null-Speicherliste zu verschieben – magicandre1981

Antwort

1

Ich habe dies bereits auf superuser.com beantwortet. Windbg lädt die ursprünglichen Exe/DLLs vom Symbol Server herunter, und jetzt erkennt die chkimg command Beschädigung in den Bildern ausführbarer Dateien, indem sie sie mit der Kopie in einem Symbolspeicher vergleicht.

Alle Abschnitte der Datei verglichen werden, mit Ausnahme der Abschnitte, die discardable sind, die beschreibbar sind, die nicht ausführbar sind, die „PAGE“ in ihrem Namen haben, oder, die von INITKDBG. Sie können dieses Verhalten ändern, indem Sie die Optionen -ss, -as oder -r verwenden.

!chkimg zeigt jede Diskrepanz zwischen dem Bild und der Datei als Bildfehler, mit folgenden Ausnahmen:

  • Adressen, die von der Import-Adresstabelle belegt sind (IAT) werden nicht geprüft.

  • Bestimmte spezifische Adressen in Hal.dll und Ntoskrnl.exe werden nicht überprüft, da bestimmte Änderungen auftreten, wenn diese Abschnitte geladen werden. Um diese Adressen zu überprüfen, fügen Sie die Option -nospec hinzu.

  • Wenn der Byte-Wert 0x90 in der Datei vorhanden ist und der Wert 0xF0 im entsprechenden Byte des Bildes vorhanden ist (oder umgekehrt), wird diese Situation als Übereinstimmung betrachtet. In der Regel enthält das Symbol Server eine Version einer Binärdatei, die sowohl in Uniprozessor als auch in Multiprozessorversionen vorhanden ist. Auf einem x86-basierten Prozessor lautet die Sperre 0xF0, und diese Anweisung entspricht einer nop (0x90) Anweisung in der Einzelprozessorversion. Wenn du willst! Chkimg to Zeige dieses Paar als nicht übereinstimmend an, setze die Option -noplock.

Wenn der RAM in Ordnung ist, überprüfen Sie die HDD/HDD-Kabel für Fehler (Disk Diag Tool und chkdsk NTFS Probleme zu erkennen und zu beheben). Sie können die Festplatte auch an einen anderen SATA-Anschluss auf dem Mainboard anschließen.

+0

Wenn '! Chkimg' den Unterschied zwischen Bild und einer DISK-Datei zeigt, wie kann es sein, dass' DSIM' sieht kein Unterschied? Kann '' chkimg' 'mit MEMORY verglichen werden? – Dims

+0

P.S. Ich habe bereits alle möglichen Manipulationen mit vorhandenen Kabeln durchgeführt; Ich möchte Debugging Thema verstehen hier – Dims

+0

es vergleicht die Dateien, die es in der Dump zu sauberen Bildern von Symbol Server gefunden. Wenn das HDD-Kabel fehlerhaft ist, kann es beim Lesen von der Festplatte in den Speicher beschädigt werden. – magicandre1981