Zatrzymaj 7F, 0x00000008 (podwójny błąd) występuje z powodu błędu pojedynczego bitu w rejestrze ESP

Ten artykuł zawiera rozwiązanie 0x0000007F STOP, 0x00000008 komunikat o błędzie na komputerze z powodu określonego błędu procesora. Ten komunikat o błędzie może być wyświetlany, gdy w rejestrze ESP procesora uruchomionego na komputerze wystąpi błąd pojedynczego bitu.

Dotyczy: Windows Server 2012 R2
Oryginalny numer KB: 842465

Symptomy

Na komputerze z uruchomionym co najmniej jednym procesorem Intel Xeon lub z innymi procesorami system Windows może wyświetlić komunikat o błędzie Zatrzymania podobny do następującego przykładu:

STOP 0x0000007F (0x00000008, 0x00000000, 0x00000000, 0x00000000) UNEXPECTED_KERNEL_MODE_TRAP

W przypadku wystąpienia tego problemu spełnione są następujące warunki:

  • Pierwszym parametrem błędu Zatrzymania jest "0x0000008". (Ten błąd jest wyjątkiem podwójnego błędu).
  • Z powodu błędu pojedynczego bitu w górnej połowie rejestru ESP wartość w rejestrze ESP znajduje się poza zakresem stosu bieżącego wątku.

Przyczyna

Ten problem występuje, jeśli jeden lub więcej procesorów na komputerze:

  • Wymagaj aktualizacji mikrokodu, która nie jest stosowana przez podstawowy system danych wejściowych/wyjściowych komputera (BIOS).

  • Są uszkodzone lub uszkodzone.

  • Działają poza określonymi zakresami temperatury, mocy lub innych warunków.

Rozwiązanie

Aby rozwiązać ten problem, użyj jednej z następujących metod rozwiązywania problemów.

Metoda 1. Określenie, czy procesor uruchamia wersję produkcyjną aktualizacji mikrokodu

Aktualizacja mikrokodu poprawia błąd errata lub usterki w wewnętrznej zaimplementowanej logice procesora. Aktualizacje mikrokodu nie mogą być trwale przechowywane w samym procesorze i muszą być ładowane do procesora przy każdym uruchomieniu komputera. Aktualizacje mikrokodu mogą być stosowane przez system BIOS komputera lub sterownik Update.sys.

Aby zidentyfikować poprawkę aktualizacji mikrokodu, która jest obecnie stosowana do procesora Intel zainstalowanego na komputerze, wykonaj następujące kroki:

  1. Pobierz narzędzie do identyfikacji procesora Intel.

  2. Zainstaluj i uruchom narzędzie do identyfikacji procesora Intel na komputerze, na który występują objawy.

  3. Zapisz następujące informacje o procesorze CPU dla każdego procesora:

    • Rodzina procesorów CPU
    • CPU Model
    • Krok procesora CPU
    • Poprawka procesora CPU

    Wartości Rodzina procesora CPU, Model procesora CPU i Krokowe procesora CPU identyfikują określony typ procesora. Wartość Poprawka procesora CPU identyfikuje poprawkę zastosowanej aktualizacji mikrokodu.

  4. Skontaktuj się z producentem komputera, aby ustalić, czy poprawka aktualizacji mikrokodu jest najnowszą poprawką dostępną dla określonego procesora. Jeśli poprawka nie jest najbardziej aktualna, poproś producenta komputera o zaktualizowanie systemu BIOS, który zastosuje najnowszą poprawkę aktualizacji mikrokodu.

Objawy opisane w tym artykule są najczęściej obserwowane na procesorach Intel Xeon, które mają odpowiednio wartości rodziny procesorów CPU, modelu procesora CPU i krokowej 15, 2 i 9 oraz które są zainstalowane na płytach głównych korzystających z chipsetów ServerWorks. (Wartości rodziny procesorów CPU, modelu procesora CPU i szesnastkowych kroków procesora CPU to odpowiednio F, 2 i 9). Te procesory wymagają wartości poprawki 0x18 lub nowszej, aby działały poprawnie. (0x18 jest równoważna wartości dziesiętnej 24).

Wartość poprawki 0 wskazuje, że system BIOS komputera nie ma poprawnej aktualizacji mikrokodu dla procesorów zainstalowanych na komputerze. System BIOS należy zaktualizować za pomocą poprawki aktualizacji mikrokodu, która obsługuje używane procesory.

Firma Intel zaleca zastosowanie najnowszych poprawek aktualizacji mikrokodu, aby uniknąć znanych problemów.

Metoda 2. Ustalenie, czy procesor jest uszkodzony, czy uszkodzony

Jeśli procesory zainstalowane na komputerach, których dotyczy problem, mają zastosowaną poprawkę aktualizacji mikrokodu produkcyjnego, a objawy opisane w tym artykule nie występują na wszystkich komputerach tego samego modelu, na których działają te same procesory, procesory mogą być wadliwe.

Aby ustalić, czy procesor jest uszkodzony lub uszkodzony, przenieś procesor do komputera, na który nie występują żadne objawy.

Ostrzeżenie

Jeśli zmienisz procesory, postępuj zgodnie z instrukcjami dostarczonymi przez producenta komputera lub skontaktuj się z odpowiednio wykwalifikowanymi technikami sprzętu, aby zmienić procesory.

Jeśli objawy nadal występują na oryginalnym komputerze z procesorem zastępczym, ale nie na innym komputerze z oryginalnym procesorem, problem prawdopodobnie nie jest spowodowany przez uszkodzony lub uszkodzony procesor.

Jeśli objawy nie będą nadal występować na oryginalnym komputerze z procesorem zastępczym, ale występują na innym komputerze z oryginalnym procesorem, problem prawdopodobnie jest spowodowany przez uszkodzony lub uszkodzony procesor. W takim przypadku skontaktuj się z producentem komputera, aby zastąpić oryginalny procesor.

Jeśli komputer, na który występują objawy opisane w tym artykule, ma więcej niż jeden procesor, przenieś wszystkie procesory na inny komputer. Jeśli wyniki wskazują, że co najmniej jeden z tych procesorów może być uszkodzony, przenieś procesory pojedynczo, aby określić procesor lub procesory, które mogą być wadliwe.

Metoda 3. Określenie, czy procesor działa poza określonym zakresem warunków środowiskowych

Nadmierna temperatura pomieszczenia, zła wentylacja lub akumulacja pyłu mogą powodować nieprawidłowe działanie składników elektronicznych, takich jak procesory. Nieprawidłowe działanie wentylatorów lub zablokowane przejścia powietrzne mogą powodować problemy z wentylacją. Jeśli wewnętrzne lub powietrzne fragmenty komputera są zakurzone lub jeśli komputer wykazuje objawy, gdy jest zainstalowany tylko w określonej lokalizacji, przegrzanie systemu może być czynnikiem. Upewnij się, że składniki są czyste, że wentylatory działają prawidłowo i że przejścia powietrzne nie są utrudnione. Ponadto upewnij się, że pomieszczenie, w którym znajduje się komputer, jest odpowiednio wentylowane. Temperatura pomieszczenia musi znajdować się w zakresie operacyjnym określonym przez producenta komputera.

Napięcie wyższe lub niższe niż określone lub zmienne może spowodować nieprawidłowe działanie procesorów i innych składników elektronicznych. Nieprawidłowe lub niespójne główne napięcie zasilania, przeciążony lub nieprawidłowo działający zasilacz w komputerze lub nieprawidłowo działające obwody płyty głównej mogą powodować dostarczenie procesorowi nieprawidłowego lub niespójnego napięcia. Skontaktuj się z odpowiednimi technikami, aby sprawdzić, czy którykolwiek z tych problemów może być przyczyną objawów.

Więcej informacji

Aby uzyskać więcej informacji na temat błędów stop 0x0000007F, zobacz 0x0000007F Błąd zatrzymania na komputerze z systemem Windows.

Rejestr ESP jest również znany jako rejestr wskaźników stosu. Stos jest strukturą danych w pamięci, która służy do przechowywania informacji o bieżącym stanie wykonywania wątku. Stos wątku służy do śledzenia wywołań funkcji w toku, parametrów przekazywanych do tych funkcji oraz zmiennych używanych przez te funkcje. Oczekuje się, że wartość w rejestrze ESP wskaże bieżącą górną część stosu. Jeśli wartość w esp jest nieprawidłowa, może wskazywać nieprawidłowe informacje lub nieprawidłowy adres. Jeśli wartość w esp wskazuje na nieprawidłowy adres, może wystąpić wyjątek podwójnego błędu.

Aby ustalić, czy błąd zatrzymania jest wynikiem błędu pojedynczego bitu w rejestrze ESP, wykonaj następujące kroki:

  1. Zainstaluj narzędzia do debugowania firmy Microsoft dla systemu Windows.

  2. Uruchom narzędzie WinDbg, wybierz pozycję Plik, wybierz pozycję Otwórz zrzut awaryjny , aby zlokalizować plik zrzutu pamięci zawierający informacje o błędzie Zatrzymania, a następnie wybierz przycisk OK.

  3. Uruchom polecenie , !analyze -v aby uzyskać zautomatyzowaną analizę pliku zrzutu.

  4. Sprawdź dane wyjściowe polecenia, !analyze -v aby sprawdzić, czy dane wyjściowe pokazują stan podwójnego błędu. Jeśli istnieje warunek podwójnego błędu .tss 28 , uruchom polecenie , aby wyświetlić stan systemu w momencie podwójnego błędu. Ogólnie rzecz biorąc, ta wartość jest stosunkowo bliska wartości rejestru EBP.

  5. Uruchom polecenie , !thread aby wyświetlić zakres stosu bieżącego wątku. Wyjątek podwójnego błędu występuje zwykle, gdy wartość rejestru ESP znajduje się poza zakresem adresów zarezerwowanych dla stosu dla bieżącego wątku.

    Gdy ten konkretny wątek jest uruchomiony, wartość rejestru ESP musi zawsze znajdować się między wartością bazową stosu (f5d2a000) a wartością Limit (f5d27000). Ogólnie rzecz biorąc, wartość rejestru ESP jest stosunkowo bliska wartości Bieżąca (f5d29c9c). (Bieżąca wartość znajduje się również między wartością Stack Base i wartością Limit).

    Możesz również sprawdzić wartości zakresu stosu, uruchamiając !pcr polecenie .

    Wartość NtTib.StackLimit reprezentuje dolny limit zakresu stosu. Wartość NtTib.StackBase reprezentuje ostatnią wartość esp. Wartość NtTib.StackBase może zostać porównana z bieżącą wartością rejestru ESP, aby ułatwić określenie, czy w bieżącej wartości rejestru ESP występuje błąd pojedynczego bitu.

  6. Uruchom polecenie , .formats esp ^ ebp aby wyświetlić różnice w wartościach między rejestrami ESP i EBP. Wartość wskaźnika stosu w rejestrze EBP będzie bliska wartości wskaźnika stosu w rejestrze ESP, z wyjątkiem błędu pojedynczego bitu. To polecenie często ujawnia pojedynczy bit wysokiego rzędu zawierający błąd, zwłaszcza gdy błąd jest wyświetlany w formacie binarnym.

    Jeśli zignorujesz dolne, najmniej znaczące cyfry, różnica między rejestrami ESP i EBP wynosi 00000000 000010000 0000000000 00000000 w formacie binarnym. Różnica wynosi 000800000 w formacie szesnastkowym.

    Ten błąd pojedynczego bitu powoduje, że rejestr ESP zawiera nieprawidłową wartość. Nieprawidłowa wartość powoduje wyjątek podwójnego błędu, sprawdzanie błędów i awarię systemu.

Aby uzyskać więcej informacji o konkretnym sprzęcie, wykonaj następujące kroki:

  1. Użyj polecenia , !cpuinfo aby uzyskać informacje o wersji procesora CPU.

    Chociaż wartość sygnatury aktualizacji nie zawsze może być dokładnie raportowana podczas analizowania pliku zrzutu awaryjnego, pole Update Signature ogólnie wskazuje poprawkę aktualizacji mikrokodu stosowaną do procesora CPU.

  2. Użyj polecenia , !pcitree aby znaleźć identyfikatory dostawcy i urządzenia (identyfikatory VenDev) dla istniejących urządzeń z interfejsem PCI (Peripheral Connect Interface).

    Dla każdego wymienionego urządzenia PCI pierwszą 8-cyfrową wartością szesnastczką (DWORD) w każdym wierszu jest identyfikator VenDev. Identyfikator dostawcy to w rzeczywistości druga 4 cyfra tej wartości. Na przykład pierwsze urządzenie, które znajduje się na liście, ma identyfikator VenDev 0x00141166. Identyfikator urządzenia jest 0x0014, a identyfikator dostawcy jest 0x1166. Identyfikator dostawcy usługi ServerWorks jest 0x1166. Dane wyjściowe pochodzą z procesora zainstalowanego na płycie głównej korzystającej z chipsetów ServerWorks.

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.