Я видел эту статейку.. не понятно где искать этот "Configuration Editor" написано что Settings->Configuration Editor, но что-то нигде в настройках не найду его что-то..
Что-то опять я запутался.. На ВМ добавил Serial Port. Потом изменил на ВМ boot.ini так: Код (Text): [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU - Debug" /fastdetect /debugport=com1 /baudrate=115200 Правда нужно ли это не совсем понятно, т.к. я и так создал ВМ для отладки драйвера.. Потом при запуске винды выбрал: "Microsoft Windows XP Professional RU - Debug" и потом в обычной виде(не на ВМ) нажимаю: Пуск-Выполнить: windbg -b -k com:pipe,port=\\.\pipe\com_1,resets=0 и выдается ошибка.. Скажите правильно ли я все делаю или нет?
Соединяется...)) Но теперь при соединении винда на ВМ виснет..=( т.е. я там драйвер не могу даже загрузить..
Dmitry_177 отладчик при соединении брякается. Причем там написано на чистом английском, что для продолжения надо ввести G
а как мне теперь построчно трассировать драйвер? и чтобы на Си было? В WinDbg прописал в "Symbol File Path" C:\drv\objchk_wxp_x86\i386\ т.е. путь к папке где лежит *.pdb файл, и еще в "Source File Path" прописал C:\drv\ т.е. путь к исходникам драйвера.. Так правильно будет?
З.Ы. до сих пор я еще так и не разобрался.. единственное что, так это вместо push xxx пишется название функци вместо адреса..
Dmitry_177 ты наверное сомпилировал без /Zi или линковал без /debug /debugtype=cv вообще там все на удивление просто, на самом деле вот что хорошо windbg умеет - так это отлаживать дрова и в сорс-моде и наоборот спросите конкретнее, лень рассказывать все 44 пункта хауту
Как компилировать с /Zi? В компиляторе прописывать вместе с командой "build" и "/Zi", т.е. так: "build /Zi"? Это в boot.ini на ВМ? Именно это мне и хотелось бы.. На Си отлаживать драйвер..
нет. C_FLAGS вроде, посмотри в хелпе из DDK. нет. z0mailbox имел ввиду случай когда ты бы не пользовался build из DDK, и компилировал и компоновал отдельно.
У меня к примеру в папке C:\drv хранятся файлы кода драйвера, makefile и source. Компилирую драйвер checket версией компилятора. В папке C:\drv создаются две папки(сейчас не помню их названия, т.к. на работе). В одной из них создается sys-файл, т.е. сам драйвер и pdb-файл, как я понимаю это файл символов.. А дальше что-то я не пойму никак.. Как мне в WinDBG запихнуть этот pdb-файл? В File-Symbol File Path прописал путь к этому файлу, и всеравно, например при разборе crash дампа символы не загружаются...
а что говорит? !sym noisy --- такая полезная фигня для этого случая вообще ВинДбг штука классная, но не для слабонервных заодно по-поводу build.exe ИМХО особенно новичкам --- не юзайте, делайте руками, это будет проще, ну например (в нескольких ветках вижу траблы с build.exe) =================== build.bat ============== set DDKPATH=C:\WINDDK\3790.1830 set PATH=%PATH%;%DDKPATH%\bin\x86;%DDKPATH%\bin; set INCLUDE=%DDKPATH%\inc\w2k;%DDKPATH%\inc\ddk\w2k;%DDKPATH%\inc\ifs\w2k;%DDKPATH%\inc\crt;%DDKPATH%\inc\api; set LIB=%DDKPATH%\lib\wnet\i386;%DDKPATH%\lib\crt\i386; rc driver.rc cl /c /nologo /D "_X86_" /Gz /Zi registry.cpp cl /c /nologo /D "_X86_" /Gz /Zi debug.cpp cl /c /nologo /D "_X86_" /Gz /Zi hook.cpp cl /c /nologo /D "_X86_" /Gz /Zi ip_detect.cpp cl /c /nologo /D "_X86_" /Gz /Zi fastio.cpp cl /c /nologo /D "_X86_" /Gz /Zi list.cpp cl /c /nologo /D "_X86_" /Gz /Zi list_ip.cpp cl /c /nologo /D "_X86_" /Gz /Zi driver.cpp ml /c /Cp /coff /nologo /Gz wp.asm link @driver32.lnk =================== build.bat ============== =================== driver.lnk ============== /DRIVER /ENTRYriverEntry /FULLBUILD /NODEFAULTLIB /NOLOGO /OUT:driver32.sys /SUBSYSTEM:native /MACHINE:X86 /DEBUG /DEBUGTYPE:CV /MAP driver.obj list.obj list_ip.obj fastio.obj hook.obj ip_detect.obj wp.obj debug.obj registry.obj driver.res ..\Messages\messages.res ntoskrnl.lib hal.lib wdmsec.lib ksecdd.lib ntstrsafe.lib =================== driver.lnk ============== чего уж проще?
чтобы мне разобраться в этих obj-ах lib-ах, время нужно же.. вообще я в ring3 программирую на Delphi, так что мне это все придется поизучать, т.к. относительно недавно начал изучать ring0, где на Delphi ничего не неапишешь =) мне как-то проще запустить build.exe перейти в нужную папку "cd c:\drv" потом ввести build и нажать enter =)
Вот что !analyze -v показывает: Вот и не знаю как символы загрузить.. есть же и виндовские, а еще и для моего драйвера создается... и как все это в windbg вставить?
Dmitry_177 set _NT_SYMBOL_PATH=C:\WINDOWS\Symbols;D:\vsprj\drivers\Debug Либо в виндебаге: File -> Symbol search path а лучше всего пропиши у себя переменную окружения _NT_SYMBOL_PATH для всех юзеров, после перезагрузки должно автоматом подхватить.
TOR Но это я как понимаю системные символы.. а символы драйвера нужно подгружать??? Для системных я так сделал: c:\Symbols*http://msdl.microsoft.com/download/symbols а можно ли так сделать? c:\drv;SRV*c:\Symbols*http://msdl.microsoft.com/download/symbols т.е. через точку с запятой c:\drv а там в какой-то папке файл символов моего драйвера и потом системные?