1. 程式人生 > >win7(主機)+win7虛擬機器(vmware,被除錯機)+windbg配置核心驅動除錯

win7(主機)+win7虛擬機器(vmware,被除錯機)+windbg配置核心驅動除錯

一、安裝環境

  1. 主機:Windows 7
  2. 虛擬機器:VMware 9 +win7(被除錯機)
  3. Windbg: 6.12

二、虛擬機器配置

1.右擊虛擬機器系統->設定->彈出虛擬機器設定框->若是安裝了虛擬印表機它會把串列埠1佔用,所以這裡要把虛擬印表機刪除掉

2.然後點選下面的新增按鈕->然後選擇串列埠->繼續->選擇“輸出到命名管道”->繼續,選擇下面紅色的選項。

3.確定之後,回到如下介面,在右腳"Virtual Machine Settings" 頁面時,在“I/O Mode” 裡選中“Yield CPU on poll“

4.點選Ok之後就虛擬機器設定完畢了。

三、Windbg的配置(必須安裝在除錯機上)
      下載地址:http://msdn.microsoft.com/zh-cn/windows/hardware/gg454513

       安裝之後,設定一個桌面快捷方式,然後,右鍵->屬性,在Target中的引號後面新增如下:-b -k com:pipe,port=\\.\pipe\com_1,baud=115200,pipe

四、被除錯機的配置(這裡是vmware的機器win7)

1.用administrator身份啟動cmd,然後在輸入命令:bcdeedit /copy {current} /d DebugEntry

  (DebugEntry是你給你被除錯機明的名)

  2.接著增加一個新的選項到引導選單,命令:bcdedit /displayorder {current} {ID},這裡的id是剛剛copy過後生成的id值

  3.啟用DEBUG,命令:bcdedit /debug {ID} ON

  4.命令執行成功後,重啟機器。

五、測試Windbg

1. 當被除錯機重啟後,開啟windbg,這時被除錯機像處於宕機狀態,等windbg連線被除錯機後,在其命令提示符”kd>"後面輸入“g”並按回車鍵。

2.設定windows核心符號表

1)在除錯連線上之後,開啟WinDbg的主選單“File”下的“Symbol File Path”,在這裡輸入符號表的位置。符號表(pdb檔案)和sys產生在同一個目錄下,所以只要指定本機上編譯結果所在的objchk_win7_x86\i386目錄就可以了。

注:如果有多個驅動需要除錯,那麼可以指定多個路徑,路徑之間用分號分隔。

2)此外,需要指定windows的核心符號表。windows的每一個sys檔案都有自己的符號表,這些符號表需要從網上下載,因為如果直接在symbol file path裡新增設定:srv*c:\symbols*http://msdl.microsoft.com/download/symbols(這個網址下載只能由windows的除錯工具用,它本身在網頁裡是打不開的)。因為下載它太慢,所以直接到微軟官網下載然後安裝也行:http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx#Download_windows

3. 至此,就可以實戰除錯自己的核心程式了