Трассировка ядра Windows 7 WinDbg - PullRequest
13 голосов
/ 19 января 2011

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

Ответы [ 3 ]

15 голосов
/ 24 октября 2012

Мне удалось исправить это из-за 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

13 голосов
/ 19 января 2011

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

Проблема: Ваши сообщения 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 для получения всех уровней вывода.

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

1 голос
/ 04 ноября 2017

Для включения вывода сообщений DbgPrint / KdPrint по умолчанию путь к реестру является «HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Debug Print Filter» Менеджер сеансов находится под управлением. Значение по умолчанию обычно 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, как описано в примере с echo. https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#install

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

...