Ошибка AppHangB1 в Windows 7: зависание программ и анализ стека
Симптомы зависания приложений с кодом события AppHangB1
При работе в приложении интерфейс перестает отвечать на действия пользователя, окно становится белесым, в заголовке появляется статус (Не отвечает), а принудительное закрытие окна порождает запись в журнале с сигнатурой события AppHangB1.
| Поле отчета WER | Значение | Расшифровка |
|---|---|---|
| Имя события проблемы | AppHangB1 | Глубокая блокировка главного графического потока UI (User Interface Thread) |
| Имя приложения | app_name.exe | Исполняемый файл зависшей программы |
| Идентификатор зависания | 47a2 (или аналогичный хэш) | Смещение инструкции в адресном пространстве, на которой застрял поток |
Методика анализа стека и устранения взаимных блокировок
- Анализ цепочки ожидания через Диспетчер задач / Resource Monitor:
- Откройте
resmon.exe(Монитор ресурсов). - Перейдите на вкладку «ЦП», найдите зависший процесс.
- Нажмите ПКМ по процессу > «Анализ цепочки ожидания» (Analyze Wait Chain).
- Окно покажет, какой дочерний поток или системная служба заблокировала выполнение (Deadlock).
- Откройте
- Снятие дампа памяти зависшего процесса для анализа в WinDbg:
# Снятие полного дампа через Process Explorer (Sysinternals): # ПКМ по процессу -> Create Dump -> Create Full Dump -> Сохранить как app_hang.dmp - Анализ стека вызовов потока в WinDbg:
# Загрузите дамп в WinDbg и выполните команды: !analyze -v -hang ~* kb # Выведет стек вызовов всех потоковИщите функции ожидания синхронизации:
WaitForSingleObject,EnterCriticalSectionили обращение к сетевым путям (UNC) через драйверmrxsmb.sys. - Устранение типовых причин AppHangB1 в Windows 7:
- Установите накопительное исправление совместимости
KB3125574(Convenience Rollup). - Отключите аппаратное ускорение графики в настройках сбоящей программы.
- Проверьте тайминги DCOM и WMI на предмет зависших запросов опроса оборудования.
- Установите накопительное исправление совместимости
Причина в 80% случаев: В Windows 7 ошибка AppHangB1 чаще всего вызвана тем, что приложение пытается синхронно обратиться к несуществующему сетевому принтеру, отключенному сетевому диску или разделяемой шаре, уходя в таймаут ожидания ввода-вывода (I/O Wait).
Частые вопросы (FAQ)
В чем отличие AppHangB1 от AppHangXProcB1?
AppHangB1 указывает на внутреннюю блокировку потока внутри самого процесса. Сигнатура AppHangXProcB1 означает кросс-процессную блокировку (Cross-Process), когда поток завис в ожидании ответа от совершенно другого внешнего процесса или службы.
Помогает ли увеличение файла подкачки при AppHangB1?
Нет, ошибка AppHang не связана с нехваткой виртуальной памяти (OutOfMemory). Это логический дедлок потоков синхронизации (Mutex, Critical Section).
Как завершить зависший процесс, если Диспетчер задач его не снимает?
Используйте принудительное завершение с разрывом дерева процессов: taskkill /F /T /PID <Номер_Процесса>.
Где хранятся системные дампы зависаний Windows Error Reporting?
Они располагаются в скрытой директории: C:\ProgramData\Microsoft\Windows\WER\ReportArchive.