Отладка WinDbg c-level?

Просто начал шагать по моему драйверу USB в режиме ядра, и он находится в ассемблере. Как настроить WinDbg для отладки c-уровня? Вот как я смотрю сейчас = /

MyDriver!MyDriver_EvtDeviceAdd+0xb: af20801b 833d647020af03 cmp dword ptr [MyDriver!DebugLevel (af207064)],3 0: kd> p MyDriver!MyDriver_EvtDeviceAdd+0x2e: af20803e ff15006020af call dword ptr [MyDriver!_imp__KeGetCurrentIrql (af206000)] 0: kd> p MyDriver!MyDriver_EvtDeviceAdd+0x58: af208068 8d95a8feffff lea edx,[ebp-158h] 0: kd> p MyDriver!MyDriver_EvtDeviceAdd+0x64: af208074 c785bcfeffff508420af mov dword ptr [ebp-144h],offset MyDriver!MyDriver_EvtDevicePrepareHardware (af208450) 

WinDbg не может найти файлы pdb. Заполните все пути WinDbg:

  1. Путь поиска символов – должен содержать файлы .pdb драйвера и локальный путь для отладочных символов MS.

  2. Исходный путь поиска – должен включать каталог с исходными файлами драйвера.

  3. Путь файла изображения – должен содержать файл .sys драйвера.

Посмотрите на журнал WinDbg: он сообщает обо всех ошибках, пытающихся загрузить отладочную информацию. Если вы видите что-то вроде «Невозможно загрузить информацию об отладке для вашего_страницы.sys», что-то не так.

Ваши символы выглядят отлично, основываясь на выводе выше. Если вы не получаете окно с исходным кодом, вы обычно находитесь в одном из двух случаев:

1) Вы перенесли исходный код с того места, где вы его построили. По умолчанию PDB имеют полный путь к исходному коду ORIGAL. Если вы переместите его, WinDBG не сможет его найти. Вы можете видеть, как выглядит WinDBG:

u MyDriver! MyDriver_EvtDeviceAdd

Это должно дать вам полный путь к исходному модулю, содержащему эту функцию, встроенную в PDB. Вы можете переопределить этот путь, установив путь поиска источника, чтобы указать на новое местоположение.

2) Вам удалось каким-то образом скрыть исходное окно. Кажется глупым, но случается со своими учениками все время 🙂 Проверьте под пунктом меню «Окно» в WinDBG, чтобы узнать, открыто ли какое-либо окно.

Чтобы прояснить более ранний момент, в этом случае вам не нужно указывать путь к файлу изображения. Единственный раз, когда требуется отладка мини-дампа.

-Скотт

Вам необходимо убедиться, что вы генерируете символы «Codeview» / debug для вашего драйвера, а созданный файл доступен для Windbg.