Udostępnij przez


Analizowanie danych sprawdzania błędów (błąd zatrzymania kodu)

Note

Ten artykuł jest przeznaczony dla programistów. Jeśli jesteś klientem, który otrzymał błąd kodu zatrzymania podczas korzystania z komputera, zobacz Rozwiązywanie problemów z błędami kodu zatrzymania.

Note

Jeśli jesteś specjalistą IT lub agentem pomocy technicznej, zobacz Zaawansowane rozwiązywanie problemów z błędami zatrzymania kodu , aby uzyskać więcej informacji.

Zbieranie parametrów kodu zatrzymania

Każdy kod sprawdzania błędów ma skojarzone cztery parametry, które dostarczają informacji. Parametry są opisane w Dokumentacja kodu sprawdzania błędów dla każdego kodu zatrzymania.

Istnieje wiele sposobów zbierania czterech parametrów kodu zatrzymania.

  • Sprawdź dziennik systemu Windows w Podglądzie zdarzeń. Właściwości zdarzenia dla sprawdzania usterek będą zawierać listę czterech parametrów kodu zatrzymania.

  • Load the generated dump file and use the !analyze command with the debugger attached. Aby uzyskać więcej informacji, zobacz Analizowanie pliku zrzutu trybu jądra za pomocą narzędzia WinDbg.

  • Podłącz debugger jądra do komputera, który powoduje błąd. Gdy wystąpi kod zatrzymania, dane wyjściowe debugera będą zawierać cztery parametry po wartości szesnastkowej kodu zatrzymania.

    *******************************************************************************
    *                                                                             *
    *                        Bugcheck Analysis                                    *
    *                                                                             *
    *******************************************************************************
    
    Use !analyze -v to get detailed debugging information.
    
    BugCheck 9F, {3, ffffe000f38c06a0, fffff803c596cad0, ffffe000f46a1010}
    
    Implicit thread is now ffffe000`f4ca3040
    Probably caused by : hidusb.sys
    

Sprawdzanie błędów w nazwach symbolicznych

DRIVER_POWER_STATE_FAILURE is the bug check symbolic name, with an associated bug check code of 9F. Wartość szesnastkowa kodu zatrzymania skojarzona z nazwą symboliczną sprawdzania błędów jest wymieniona w dokumentacji kodu sprawdzania błędów.

Odczytywanie informacji o sprawdzaniu błędów z debugera

Jeśli debuger jest dołączony, a debugowanie jest włączone na komputerze, sprawdzanie błędów spowoduje, że komputer docelowy włamie się do debugera. W takim przypadku błąd kodu zatrzymania może nie pojawić się natychmiast. Pełne szczegóły dotyczące tej awarii zostaną wysłane do debugera i pojawią się w oknie debugera. Aby wyświetlić te informacje po raz drugi, użyj polecenia .bugcheck (Wyświetl dane sprawdzania błędów) lub polecenia rozszerzenia !analyze . Aby uzyskać informacje na temat włączania debugowania, zobacz Wprowadzenie do WinDbg (Kernel-Mode).

Debugowanie jądra i analiza zrzutu awaryjnego

Debugowanie jądra jest szczególnie przydatne, gdy inne techniki rozwiązywania problemów zawodzą lub w przypadku powtarzającego się problemu. Pamiętaj, aby przechwycić dokładny tekst w sekcji informacji o sprawdzaniu błędów w komunikacie o błędzie. Aby wyizolować złożony problem i opracować realne obejście, warto zarejestrować dokładne działania, które doprowadziły do niepowodzenia.

The !analyze debug extension displays information about the bug check and can be helpful in determining the root cause.

Możesz również ustawić punkt przerwania w kodzie prowadzącym do tego kodu zatrzymania i spróbować wykonać pojedynczy krok do przodu do kodu powodującego błąd.

Aby uzyskać więcej informacji, zobacz następujące artykuły:

Analiza zrzutu awaryjnego przy użyciu debugerów systemu Windows (WinDbg)

Analizowanie pliku zrzutu w trybie jądra za pomocą WinDbg

Korzystanie z rozszerzenia !analyze i !analyze

Narzędzia do defragmentacji pokazują

Zbieranie informacji za pomocą weryfikatora sterowników

Szacuje się, że około trzech czwartych błędów kodu zatrzymania jest powodowanych przez błędy sterowników. Driver Verifier to narzędzie, które działa w czasie rzeczywistym w celu zbadania zachowania kierowców. Na przykład weryfikator sterowników sprawdza użycie zasobów pamięci, takich jak pule pamięci. Jeśli znajdzie błędy w wykonywaniu kodu sterownika, proaktywnie tworzy wyjątek, aby umożliwić dalszą analizę tej części kodu sterownika. Menedżer weryfikatora sterowników jest wbudowany w system Windows i jest dostępny na wszystkich komputerach z systemem Windows. To start the driver verifier manager, enter Verifier at a command prompt. Możesz skonfigurować, które sterowniki chcesz zweryfikować. Kod, który weryfikuje sterowniki, zwiększa obciążenie podczas działania, więc spróbuj zweryfikować jak najmniejszą liczbę sterowników. For more information, see Driver Verifier.

Wskazówki dla inżynierów oprogramowania

Gdy sprawdzanie błędów następuje w wyniku napisanego kodu, należy użyć debugera jądra do przeanalizowania problemu, a następnie naprawić błędy w kodzie. Aby uzyskać szczegółowe informacje, zobacz indywidualny kod sprawdzania błędów w sekcji Dokumentacja kodu sprawdzania błędów .

Jednak możesz również napotkać sprawdzanie błędów, które nie są spowodowane przez własny kod. W takim przypadku prawdopodobnie nie będziesz w stanie naprawić rzeczywistej przyczyny problemu, więc Twoim celem powinno być obejście problemu. Jeśli to możliwe, odizoluj i usuń składnik sprzętowy lub programowy, który jest uszkodzony.

Wiele problemów można rozwiązać, korzystając z podstawowych procedur rozwiązywania problemów, takich jak instrukcje weryfikacji, ponowna instalacja kluczowych składników i weryfikacja dat plików. Ponadto Podgląd zdarzeń, narzędzia diagnostyczne Sysinternals i narzędzia do monitorowania sieci mogą izolować i rozwiązywać te problemy.

See also