1. 程式人生 > >Windows驅動學習(四)-- 雙機除錯

Windows驅動學習(四)-- 雙機除錯

1. 概述

跟除錯應用層程式不同,驅動不穩定,可能會導致藍屏,所以我們不能在本機除錯。一般的操作是在一個虛擬機器中載入驅動,然後通過串列埠對該虛擬機器的驅動進行除錯。

2. 虛擬機器配置

2.1 開啟除錯選項

以管理員身份執行cmd。 1

鍵入bcdedit命令,檢視當前啟動項,輸出如下: 2

純淨的系統,一般只有一個標識為{current}的啟動載入器是當前的啟動配置。

建立一個新的啟動項: bcdedit /copy {current} /d “Windwos7”

設定新的啟動項: bcdedit /debug ON bcdedit /bootdebug ON

檢視當前的除錯配置: bcdedit /dbgsettings 3

一般來說,會顯示出使用的第一個串列埠,波特率為115200bps,和期望的一致,不需要修改。

選擇選單的超時,我設定為10秒: bcdedit /timeout 10

重新啟動,當需要除錯時就用除錯模式進入。 4

2.2 設定串列埠

首先移除掉印表機,因為它佔用了第一個串列埠,然後新增一個串列埠,命名為\.\pipe\com_1,同時設定另一端是應用程式。 5

3. VS2017配置

配置串列埠連線。 6

Display name隨便填,Network host name則填虛擬機器的計算機名。 7

然後連線型別選擇串列埠,勾上Pipe和Reconnect,Pipe name填入串列埠名“\.\pipe\com_1”。 8

4. 拍攝快照

配置好的虛擬機器最好打上一個快照,方便以後除錯。 9

5. 連線

做好以上配置後,在VS2017上點選Debugging Tools for Windows - Kernel Debugger進行除錯。 10

一路點繼續。 11

當右下角出現提示訊息後就意味著連線成功啦。 12

6. 除錯

在程式碼上下好斷點後,將對應的驅動檔案複製到虛擬機器中並載入,VS2017會自動斷在斷點處,如右所示,這時就可以開始除錯啦。 13