Отладка стороннего драйвера с помощью pdb и без исходного кода

У меня есть образ диска, который работает хорошо и имеет тысячи часов работы без сообщений о синих экранах. Я настроил цикл перезагрузки и не видел синего экрана после нескольких десятков циклов.

Я установил сторонний драйвер для аппаратного обеспечения и теперь получаю синий экран каждые 3 или 4 загрузки. Кажется, это вызвано повреждением пула.

Я включил проверку драйвера для этого драйвера и проверил только специальный пул. Это больше не будет синий экран. После отключения верификатора я все еще не могу получить синий экран. Это второй раз, когда я прошел через этот процесс, и он кажется повторяющимся.

Кажется, что он устанавливает какой-то флаг, когда обнаруживает верификатор - я знаю, что есть сообщения о том, что производители обманывают WHQL таким образом, хотя я надеюсь, что есть какое-то другое объяснение. В реестре нет ничего очевидного, и strings не находит ничего полезного в двоичном файле.

Вместе с драйвером производитель отправил pdb с приватными символами. Можно ли как-нибудь поковыряться с файлом pdb без фактического запуска драйвера и использования отладчика ядра? Я также был бы признателен за любые другие советы по решению таких проблем.

Спасибо


person Jon    schedule 09.05.2011    source источник


Ответы (1)


Вы можете использовать файл memory.dmp в папке system32, которая должна быть создана при наличии bsod. Загрузка этого в windbg вместе с приватным файлом pdb должна позволить вам немного поковыряться.

person Chris Edmonds - MSFT    schedule 11.05.2011
comment
Хороший момент - я думаю, что я списал дампы как бесполезные после использования windbg, чтобы определить, что проблемы были вызваны более ранним повреждением пула. Я нашел pdb позже, когда пытался заставить верификатор создать более полезный аварийный дамп. - person Jon; 11.05.2011