Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera wskazówki dotyczące rozwiązywania problemów z zachowaniem awarii aplikacji lub usługi.
Dotyczy: wszystkie obsługiwane wersje systemu Windows Server i klienta systemu Windows
Gdy w dzienniku aplikacji jest wyświetlany identyfikator zdarzenia 1001 i identyfikator zdarzenia 1000, oznacza to zachowanie aplikacji powodujące awarię. Odbywa się to razem z procesami pierwszej lub innej firmy i wskazuje możliwy moduł błędów.
W tym artykule szczegółowo opisano proces sprawdzania zdarzenia, zrozumienia informacji w zdarzeniu i obsługi zdarzenia na podstawie tego, czy jest to aplikacja innej firmy. Narzędzia debugowania dla systemu Windows są używane w tym procesie.
Zanim rozpoczniesz
Zagadnienia do rozważenia:
- Sprawdź, czy używasz najnowszych aktualizacji zainstalowanej wersji systemu operacyjnego.
- Sprawdź, czy aplikacja, której dotyczy ten wpływ, jest aktualna.
- Jeśli oprogramowanie antywirusowe jest zainstalowane, sprawdź, czy jest ono uruchomione w najnowszej wersji i czy istnieją niezbędne wykluczenia.
Informacje o identyfikatorze zdarzenia 1001 level
pokazują, czy Raportowanie błędów systemu Windows (WER) jest włączona w systemie. Należy jednak zmienić tę usługę, aby zebrać level
informacje wymagane do zbadania. System domyślnie nie rejestruje tych informacji, aby uniknąć niewielkiego obciążenia związanego z wydajnością.
Identyfikator zdarzenia 1000 z Error
poziomem to rzeczywiste zdarzenie powodujące awarię aplikacji. Na przykład przedstawiono następujące informacje:
Log Name: Application
Source: Application Error
Date: <Date Time>
Event ID: 1000
Task Category: Application Crashing Events
Level: Error
Keywords:
User: SYSTEM
Computer: demo.contoso.com
Description:
Faulting application name: netsh.exe, version: 10.0.22621.1, time stamp: 0x13af0815
Faulting module name: netsh.exe, version: 10.0.22621.1, time stamp: 0x13af0815
Exception code: 0xc0000005
Fault offset: 0x0000000000005399
Faulting process id: 0x0xFEE4
Faulting application start time: 0x0x1DAB66BB5BE07D4
Faulting application path: C:\WINDOWS\system32\netsh.exe
Faulting module path: C:\WINDOWS\system32\netsh.exe
Report Id: <Report ID>
Faulting package full name:
Faulting package-relative application ID:
Często przedstawia moduł firmy Microsoft jako moduł błędów, na przykład ntdll.dll, kernel32.dll i kernelbase.dll. Te moduły są intensywnie używane podczas uruchamiania procesów i przechodzenia między trybem użytkownika a trybem jądra. W tym procesie są one przechwytywane jako ofiary innych typów uszkodzeń wcześniej wykonywanych przez nieprawidłowo działające moduły.
Typowe wyjątki:
0xc0000022
STATUS_ACCESS_DENIED
0xc0000005
STATUS_ACCESS_VIOLATION
0xc0000374
STATUS_HEAP_CORRUPTION
W przypadku wystąpienia wyjątku można włączyć dodatkowe pełne rejestrowanie dla procesu i zebrać pełny zrzut procesu przy użyciu Raportowanie błędów systemu Windows (WER) i GFlags (gflags.exe).
Zainstaluj narzędzia debugowania dla systemu Windows, aby uzyskać gflags.exe, ponieważ są dostępne w narzędziach. Jednak wystarczy skopiować plik bez instalowania narzędzi na maszynie, która wymaga rozwiązywania problemów.
Zebrać dane
W poprzednim przykładzie awarii netsh.exe skonfiguruj maszynę do zbierania zrzutów, aby uzyskać więcej informacji na temat przyczyn awarii. Zastąp netsh.exe plikiem wykonywalnym zidentyfikowanym w identyfikatorze zdarzenia 1000 na urządzeniu.
Skonfiguruj usługę WER, aby zbierać pełne zrzuty procesów wyjątku, uruchamiając następujące polecenia z wiersza polecenia z podwyższonym poziomem uprawnień:
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"/v DumpFolder /t REG_EXPAND_SZ /d "C:\WER" /f md C:\WER reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpCount /t REG_DWORD /d 10 /f reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpType /t REG_DWORD /d 2 /f reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpFolder /t REG_EXPAND_SZ /d "C:\WER" /f reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpCount /t REG_DWORD /d 10 /f reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpType /t REG_DWORD /d 2 /f
Te polecenia umożliwiają zbieranie i przechowywanie w folderze C:\WER maksymalnie 10 pełnych zrzutów procesów netsh.exe.
Uwaga 16.
Dodano lokalizację rejestru systemu Windows w systemie Windows 64 (WOW64), która umożliwia uruchamianie aplikacji 32-bitowych w systemach 64-bitowych.
Skonfiguruj GFlags do monitorowania alokacji sterty w celu śledzenia uszkodzenia.
Przejdź do katalogu, w którym znajduje się narzędzie, i uruchom następujące polecenia z wiersza polecenia z podwyższonym poziomem uprawnień.
Aby włączyć flagę Włącz stertę strony (hpa):
Gflags.exe /i netsh.exe +hpa
Aby wyłączyć flagę sterty strony Włącz:
Gflags.exe /i netsh.exe -hpa
Uruchom ponownie proces, aby ustawienie miało zastosowanie.
Monitoruj folder C:\WER i sprawdź wszystkie utworzone zrzuty.
Analizowanie danych
Po utworzeniu zrzutów procesów można wykonywać następujące czynności:
- Udostępnij odpowiednie zrzuty innej osobie w celu zbadania, jeśli proces jest procesem innej firmy.
- Skontaktuj się z pomoc techniczna firmy Microsoft, aby przeanalizować dane, jeśli proces jest procesem pierwszej firmy.
- Użyj debugera (windbg.exe) zainstalowanego przy użyciu narzędzi debugowania dla systemu Windows i spróbuj określić moduł błędu przy użyciu rozszerzenia !analyze.
Po zebraniu danych i zakończeniu badania usuń klucz rejestru (ten z nazwą procesu) i wyłącz flagę Sterty strony Włącz dla GFlags.