VS2015對WDK10驅(qū)動程序進(jìn)行雙機(jī)調(diào)試
【1】設(shè)置Visual Studio 2015調(diào)試方式:
主計(jì)算機(jī):WIN7?64位 虛擬機(jī):WIN7?64位 調(diào)試器:VS2015 調(diào)試的軟件:內(nèi)核驅(qū)動程序
一、主計(jì)算機(jī)和虛擬機(jī)兩臺機(jī)器必須關(guān)閉防火墻,必須能夠互相ping通(使用橋接模式).
二、?將WDK10攜帶的調(diào)試驅(qū)動包拷貝到虛擬機(jī)中安裝:
1)WDK10安裝時(shí)如果用的是默認(rèn)路徑: ? ? ? ? ? ? ? ? ? ? ? ? ?//兩個(gè)都可以安裝,因?yàn)閂S2015可以調(diào)試32位和64位的驅(qū)動程序
C:Program Files (x86)Windows Kits10Remotex64WDK Test Target Setup x64-x64_en-us ? ? //64位調(diào)試驅(qū)動包
C:Program Files (x86)Windows Kits10Remotex86WDK Test Target Setup x86-x86_en-us ? ? //32位調(diào)試驅(qū)動包
2)如果你自定義了WDK10安裝路徑,請到你指定的目錄尋找.
三、虛擬機(jī)添加串口:
1)設(shè)置-->添加-->串型接口-->輸出到命名管道.
2)設(shè)置選項(xiàng)為“另一端為應(yīng)用程序” 并且“ 為管道命名不要為常見名稱” ?--> 添加命名管道完成.
問題:因?yàn)橐话闾摂M機(jī)的串口1是打印機(jī),串口2才是我們創(chuàng)建的,所以可能連接時(shí),會弄錯(cuò),導(dǎo)致后來不能連接上串口通道.
解決:打開“運(yùn)行”輸入MSConfig,彈出MSConfig工具:(原創(chuàng)百度經(jīng)驗(yàn)地址:http://jingyan.baidu.com/article/3a2f7c2e6dee4126afd611c6.html)
? ? ? ? ? ??
? ? ? ? ?1)打開boot工具的debug,修改com1為com2:
? ? ? ??
四、虛擬機(jī)進(jìn)入調(diào)試模式://使用管理員權(quán)限打開cmd,輸入以下命令
? ? ? ?1)bcdedit /debug ON ? ? ? ? ? ? ? ? ? ? ? ?開啟調(diào)試模式
? ? ? ?//設(shè)置串口的波特率為115200bps(其實(shí)默認(rèn)就是,不用修改)
? ? ? ?2)bcdedit /dbgsettings serial debugport:串口號 baudrate:115200
? ? ? ?3)bcdedit /dbgsettings ? ? ? ? ? ? ? ? ? ? ?查看當(dāng)前的調(diào)試配置
? ? ? ?4)bcdedit /timeout 10 ? ? ? ? ? ? ? ? ? ? ? ?選擇菜單的超時(shí),我設(shè)置為10秒
五、驅(qū)動程序的項(xiàng)目點(diǎn)右鍵-->選擇屬性菜單-->選擇調(diào)試選項(xiàng)-->在右邊要啟動的調(diào)試器上選擇Debugging Tools for windows – Kernel Debugger-->在Remote Computer Name上點(diǎn)擊配置,就會出現(xiàn)配置窗口,界面如下:
1)點(diǎn)擊Add New Devide添加調(diào)試主機(jī).
2)下一步
3)點(diǎn)擊下一步,會對虛擬機(jī)進(jìn)行自動安裝,在此過程中,不應(yīng)動虛擬機(jī):
4)安裝完成后,點(diǎn)擊應(yīng)用:
5)在VS2015中選擇調(diào)試-->附加到進(jìn)程:
? ? ?1、傳輸:選擇Windows Kernel Mode Debugger
? ? ?2、限定符:選擇創(chuàng)建新測試設(shè)備時(shí)輸入的那個(gè)名稱
? ? ?3、以下可用進(jìn)程出現(xiàn)一個(gè)Kernel的進(jìn)程,點(diǎn)擊它附加.
6)附加完成后,VS2015右下角會出現(xiàn)Debugger的“waiting to reconnect”.
7)如果沒有問題,重啟虛擬機(jī),VS2015右下角會出現(xiàn)Debugger就會連接上了,狀態(tài)為“正在跑”.
8)虛擬機(jī)啟動完成后,打開“驅(qū)動程序加載工具"
? ?必須確保將加載的驅(qū)動程序的.sys是DEBUG版的,而且要與VS2015調(diào)試中的代碼對應(yīng).
? ?(你的sys和加載驅(qū)動工具必須已經(jīng)測試過能夠加載驅(qū)動程序.)
? ?//這就需要先看地址:http://blog.csdn.net/aaron133/article/details/78091639 ?加載驅(qū)動的文章.
? ?
9)打開“驅(qū)動程序加載工具"后,VS2015中點(diǎn)擊暫停:,你會發(fā)現(xiàn)虛擬機(jī)整個(gè)卡住了.
10)現(xiàn)在才能設(shè)置有效斷點(diǎn),F(xiàn)9設(shè)置好斷點(diǎn)后:
在VS2015右下角的Debugger界面中輸入:kd> g ? ? ? ?表示繼續(xù)跑.
11)使用加載驅(qū)動程序加載我們的.sys驅(qū)動程序,當(dāng)sys跑起來后,就能夠斷下來了: