以前一直都是用 VS2008 + DDKWizard + WinDbg 來(lái)進(jìn)行驅(qū)動(dòng)程序的開(kāi)發(fā)調(diào)試的,
使用 DDKWizard 來(lái)搭配調(diào)試環(huán)境呢,在 VS2008 下也還算方便,
因?yàn)椴恍枰约喝ピO(shè)置一些什么包含文件啊,源代碼路徑啊之類(lèi)的就可以直接編譯驅(qū)動(dòng)程序源碼,
安裝好 DDKWizard 后,在 VS2008 中就會(huì)自動(dòng)出現(xiàn)一個(gè)開(kāi)發(fā)驅(qū)動(dòng)程序的項(xiàng)目框架,
就跟選擇創(chuàng)建 WinForm 應(yīng)用程序一樣的,創(chuàng)建好 DDK 項(xiàng)目后也是可以直接在 VS2008 下編譯的,
所以在開(kāi)發(fā)上也還方便,但是在調(diào)試上的話,就麻煩了,
在 WinDbg 中有一大堆東西要設(shè)置,在虛擬機(jī)上也要設(shè)置一些命令,
關(guān)于 WinDbg + VMware 開(kāi)發(fā)調(diào)試驅(qū)動(dòng)程序在網(wǎng)上有比較有名的酒若琳的文章,
不過(guò)那是很多年以前的文章了,有興趣的可以去谷歌搜索 "酒若琳 WinDbg" ,應(yīng)該是可以找到那篇文章的。
同時(shí)對(duì)于這一塊的使用,也可以參考筆者的文章《驅(qū)動(dòng)開(kāi)發(fā) – WDK 調(diào)試及 SVN 環(huán)境搭配》,
博文地址為:
但是在使用 DDKWizard + VS2008 進(jìn)行驅(qū)動(dòng)開(kāi)發(fā)時(shí),是不能夠直接通過(guò) VS2008 來(lái)調(diào)試的
(這里可能有其他門(mén)路來(lái)實(shí)現(xiàn),但是筆者沒(méi)有實(shí)現(xiàn)過(guò)),
而一般都是在 WinDbg 中設(shè)置好符號(hào)文件的路徑以及源代碼的路徑,然后再驅(qū)動(dòng)程序的源代碼中嵌入一些匯編代碼,
當(dāng)然這些匯編代碼只是簡(jiǎn)單的用來(lái)實(shí)現(xiàn)一個(gè)中斷,從而在 WinDbg 調(diào)試器中會(huì)生成一個(gè)斷點(diǎn)。
這樣調(diào)試起來(lái)速度慢,也不好控制,所以有時(shí)候覺(jué)得在做開(kāi)發(fā)的時(shí)候,在調(diào)試上花去的時(shí)間太多了,會(huì)不爽。
在本次博文中,將要介紹的是一個(gè)開(kāi)源項(xiàng)目 VirtualDDK(VirtualKD 中包含了 VirtualDDK),
通過(guò)這個(gè)開(kāi)源項(xiàng)目即可以很好的實(shí)現(xiàn)在 VS2010 以及 VS2008 下直接調(diào)試驅(qū)動(dòng)程序,
同時(shí)對(duì)于 VirtualDDK 的環(huán)境搭配也是很簡(jiǎn)單的,下面就直接上一些圖片以及一些注解來(lái)說(shuō)明,
由于文章存在大量的截圖,所以讀者只要按著截圖來(lái)做基本上都是可以成功的。
同時(shí)下面給出官網(wǎng)上的一篇關(guān)于利用 VirtualDDK 和 VS 來(lái)調(diào)試驅(qū)動(dòng)程序的文章(內(nèi)容非常詳細(xì)),
基本上通過(guò)筆者的這篇博文和官網(wǎng)上的博文就完全可以搭建驅(qū)動(dòng)程序開(kāi)發(fā)環(huán)境成功了 !
同時(shí)在官網(wǎng)上的環(huán)境為 VS2008 的。而且在官網(wǎng)的博文中還有兩個(gè)比較好的驅(qū)動(dòng)例子の !
1. A dummy driver that simply prints a message when it is loaded .
2. A ramdisk driver, that creates a virtual hard disk .