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

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

0 голосов
/ 30 августа 2011

Только что начал шагать мой драйвер режима 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)

Ответы [ 3 ]

2 голосов
/ 30 августа 2011

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

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

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

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

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

1 голос
/ 31 августа 2011

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

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

u MyDriver! MyDriver_EvtDeviceAdd

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

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

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

-scott

0 голосов
/ 30 августа 2011

Вы должны убедиться, что вы генерируете символы «Кодовое представление» / отладки для своего драйвера, и сгенерированный файл доступен для Windbg.

...