Как собрать информацию о зависании Windows 7, которая может включать как драйвер, так и код пользовательского режима? - PullRequest
1 голос
/ 19 апреля 2011

Я испытываю сбой в приложении, в котором происходит сбой Windows 7, но не в традиционном сбое "синего экрана смерти", которое происходит, когда драйверы устройств или другие процессы в ядре разрушают всю систему, а скорее,Я вижу блокировку всех процессов пользовательского пространства.

Вот состояние машины:

(1) Движение мыши по-прежнему реагирует, и слой композиции Aero все еще работает (некоторые эффекты мыши в проводнике по-прежнему работают), но нетПроцесс win32 работает, а GDI и пользовательская сессия кажутся замороженными.(2) Ctrl + Alt + Delete не вызывает диспетчер задач.(3) Нет аварийных свалок и нет синего экрана смерти.

Кто-нибудь знает какой-нибудь способ собрать больше информации о катастрофе?Я знаю, что существуют проблемы на уровне драйверов, и я хотел бы собрать информацию, которую могли бы использовать люди на уровне драйверов устройств.Когда вы получите Blue Screen Of Death, вы можете собрать файлы дампа памяти (DMP) и отправить их разработчикам для помощи.Я ищу способ отслеживать процессы и состояние системы, возможно, подключить отладчик ядра или что-то в этом роде.Я никогда не работал с отладчиком ядра, поэтому я ищу способ начать с этим.

Я легко могу воспроизвести сбой в win7 / 32-битной виртуальной машине, и у меня еще нет ядраинструменты отладки установлены.Во-первых, мне интересно, если мне кажется, что я выбрал стоящий подход (инструменты отладки ядра?), И если это так, я не знаю, как использовать эти инструменты для сбора информации, которая может помочь разработчикам режима ядра найти проблему..

1 Ответ

2 голосов
/ 21 апреля 2011

Загрузите WinDbg и подключитесь к рассматриваемому компьютеру с помощью Firewire или последовательного кабеля (USB также работает при некоторых обстоятельствах IIRC).Это позволит вам искать взаимоблокировки в работающей системе с удаленного компьютера.

Другая возможность - вызвать сбой системы (посмертный анализ).Прежде чем устанавливать параметры аварийного дампа на полный дамп, необходимо убедиться в этом.Это создаст аварийный дамп того же размера, что и ваш объем оперативной памяти.Конечно, это может создать проблему при получении дампов для людей (например, через сеть).Также помните, что личные данные могут содержаться в дампе, в зависимости от обстоятельств.

Как спровоцировать аварийный дамп, я описал здесь , соответствующая часть приведена ниже.Если вы подключены через отладчик ядра, вы также можете спровоцировать создание дампа памяти.


Драйверы клавиатуры могут вызвать BSOD:

HKLM\CurrentControlSet\Services\kbdhid\Parameters

или (для старых клавиатур PS / 2)

HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

И установите REG_DWORD с именем CrashOnCtrlScroll на 1.

После следующей перезагрузки вы можете вызвать синийэкран по Ctrl+ScrollLk+ScrollLk.Код проверки ошибки в этом случае будет 0xE2 (MANUALLY_INITIATED_CRASH).

...