Ядро отслеживает Windows 7 WinDbg

Я не получаю отладочную информацию при отладке en_windows_7_checked_build_dvd_x86_398742. Я не вижу даже моей собственной информации о трассе (ATLTRACE). В противоположность, Windows XP Checked работает как шарм. Я получаю сообщение "Bad QueryIdType: 5" в начале отладки с Windows 7. Очевидно, что отладка ядра настроена правильно. Пожалуйста, помогите...

Ответы

Ответ 1

Я смог исправить его из windbg, на Windows 7 32 бит:

ed Kd_DEFAULT_Mask 8

Согласно статье msdn, вы также можете использовать реестр, но вы должны перезагрузиться, чтобы он вступил в силу. Создайте ключ DWORD под HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter, называемый DEFAULT со значением 8.

Текущую документацию по Microsoft можно найти здесь: http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx

Ответ 2

ОК, я нашел решение здесь. Это может помочь людям:

Проблема: ваши сообщения DbgPrint или KdPrint не отображаются в WinDbg (или KD) при запуске вашего драйвера в Windows Vista.

Причина? Vista автоматически сопоставляет DbgPrint и друзей с DbgPrintEx. Теперь вы можете вспомнить, что DbgPrintEx позволяет вам контролировать условия, при которых сообщения будут отправляться в отладчик ядра, путем фильтрации сообщений через имя компонента и уровень вызова функции и связанную маску фильтра в реестре или в памяти.

В Vista DbgPrint и KdPrint сопоставляются с компонентом "DPFLTR_DEFAULT_ID" и уровнем "DPFLTR_INFO_LEVEL". Конечно, в Vista выход xxx_INFO_LEVEL по умолчанию отключен. Таким образом, по умолчанию ваш DbgPrint/KdPrint не отправляется в отладчик ядра.

Как это исправить? Два варианта:

  • Разрешить вывод сообщений DbgPrint/KdPrint по умолчанию --Открыть ключ HKLM\SYSTEM\CurrentControlSet\Session Manager\Debug Print Filter. Под этим ключом создайте значение с именем DEFAULT Задайте значение этого ключа, равное значению DWORD 8, для включения вывода xxx_INFO_LEVEL, а также вывода xxx_ERROR_LEVEL. Или попробуйте установить маску на 0xF, чтобы получить весь вывод. Вы должны перезагрузить, чтобы эти изменения вступили в силу.

  • В частности, измените мачту фильтра компонента для DPFLTR. В ранних версиях Vista/LH вы изменили маску печати по умолчанию, указав значение маски для DWORD в Kd_DPFLTR_MASK ( "ed Kd_DPFLTR_MASK" ). В сборке 5308 (февральский CTP Vista) кажется, что переменная маски изменилась, и вам нужно установить значение маски для DWORD в Kd_DEFAULT_MASK ( "ed Kd_DEFAULT_MASK). В любом случае укажите 8 для включения DPFLTR_INFO_LEVEL вывод в дополнение к выводу DPFLTR_ERROR_LEVEL или 0xF для получения всех уровней вывода.

Для получения подробной информации об использовании DbgPrintEx/KdPrintEx см. документацию WDK для чтения и фильтрации сообщений отладки (следуйте по пути: Средства разработки драйверов\Инструменты для отладки драйверов\Использование кода отладки в обзоре кода драйвера\Отладка). Или просмотрите документацию" Отладка инструментов для Windows" (Приложение A) на DbgPrintEx.

Ответ 3

Для включения вывода сообщений DbgPrint/KdPrint по умолчанию путь реестра "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter" Session Manger находится ниже элемента управления. Значение по умолчанию normaly равно 0xf. Это позволяет использовать все сообщения. Чтобы настроить лучшую битовую маску для ваших нужд, информация находится по адресу https://docs.microsoft.com/de-de/windows-hardware/drivers/devtest/reading-and-filtering-debugging-messages#identifying-the-component-name

Если вы используете Visual Studio 2015 или 2017, стандартная конфигурация не будет устанавливать этот флаг по умолчанию. Когда вы начинаете работать с примерами, не забудьте установить это дополнительно в Debug-Target.

Итак, это помогло мне в моей среде Windows 10 с помощью Windbg.

Вторая проблема заключалась в использовании devcon для Windows 10, как описано в примере эха https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#install

В Bullet "7 Найдите файлы встроенного драйвера", передав необходимые файлы драйверов в Debug-Target и загрузите их с помощью devcon. С помощью Windows 10 вам также нужно скопировать каталог файл. В противном случае devcon.exe завершится с ошибкой, как описано. Вы также должны установить тестовый сертификат. Обычно это делается при подготовке среды отладки с помощью Visual Studio 2015/2017. Просто дважды проверьте с certmgr.