Руководство по устранению неполадок с поведением приложения или службы
В этой статье содержатся рекомендации по устранению неполадок в поведении приложений или служб.
Область применения: все поддерживаемые версии Windows Server и клиента Windows
Если в журнале приложений неоднократно отображается идентификатор события 1001 и идентификатор события 1000, это означает, что в журнале приложений происходит сбой приложения. Он происходит вместе с процессами первого или стороннего производителя и указывает на возможный модуль сбоя.
В этой статье описывается процесс проверки события, понимание сведений о событии и обработка события на основе того, является ли оно первым или сторонним приложением. Средства отладки для Windows используются в этом процессе.
Подготовка к работе
Рекомендации:
- Убедитесь, что вы запускаете последние обновления для установленной версии операционной системы.
- Убедитесь, что затронутое приложение обновлено.
- Если антивирусное программное обеспечение установлено, убедитесь, что он работает в последней версии и что необходимые исключения существуют.
Сведения о событии 1001 level
показывают, включен ли отчеты об ошибках Windows (WER) в системе. Однако необходимо изменить эту службу, чтобы собрать level
сведения, необходимые для расследования. Система не регистрирует эту информацию по умолчанию, чтобы избежать незначительных затрат на производительность.
Идентификатор события 1000 с Error
уровнем — это фактическое событие сбоя приложения. В нем показаны следующие сведения в качестве примера:
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:
Он часто представляет модуль Майкрософт в качестве модуля сбоя, например ntdll.dll, kernel32.dll и kernelbase.dll. Эти модули часто используются при выполнении процессов и переходе между пользовательским режимом и режимом ядра. В этом процессе они пойманы в качестве жертв других видов коррупции, ранее выполненных неправильными модулями.
Распространенные исключения:
0xc0000022
STATUS_ACCESS_DENIED
0xc0000005
STATUS_ACCESS_VIOLATION
0xc0000374
STATUS_HEAP_CORRUPTION
При возникновении исключения можно включить дополнительное подробное ведение журнала для процесса и собрать полный дамп процесса с помощью отчеты об ошибках Windows (WER) и GFlags (gflags.exe).
Установите средства отладки для Windows, чтобы получить gflags.exe, так как он включен в средства. Однако вам нужно скопировать файл, не устанавливая средства на компьютере, который нуждается в устранении неполадок.
Собрать данные
В предыдущем примере сбоя netsh.exe настройте компьютер для сбора дампов для получения дополнительных сведений о том, что вызвало сбой. Замените netsh.exe исполняемым файлом, указанным в идентификаторе события 1000 на устройстве.
Настройте WER для сбора полных дампов процесса исключения, выполнив следующие команды из командной строки с повышенными привилегиями:
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
Эти команды позволяют собирать и хранить в папке C:\WER до 10 полных дампов процесса netsh.exe.
Примечание.
Добавляется расположение реестра Windows в Windows 64 (WOW64), которое позволяет 32-разрядным приложениям работать в 64-разрядных системах.
Настройте GFlags для отслеживания выделения кучи для трассировки повреждения.
Перейдите в каталог, где находится средство, и выполните следующие команды из командной строки с повышенными привилегиями.
Чтобы включить флаг включения кучи страницы (hpa):
Gflags.exe /i netsh.exe +hpa
Чтобы отключить флаг "Включить кучу страницы", выполните следующие действия.
Gflags.exe /i netsh.exe -hpa
Перезапустите процесс, чтобы параметр вступил в силу.
Отслеживайте папку C:\WER и проверьте наличие созданных дампов.
Анализ данных
После создания дампов процесса вы можете:
- Поделитесь соответствующими дампами со сторонней стороной для расследования, если процесс является сторонним процессом.
- Обратитесь к служба поддержки Майкрософт для анализа данных, если процесс является первым процессом.
- Используйте отладчик (windbg.exe), установленный с помощью средств отладки для Windows , и попробуйте определить модуль сбоя с помощью расширения !analyze.
После сбора данных и завершения исследования удалите раздел реестра (один с именем процесса) и отключите флаг "Включить кучу страниц" для GFlags.