VirtualBox+Windbg 進行雙機調試的方法


  以前見他們調試驅動程序之類的都是使用的VMWare, 我沒怎么用這軟件, 感覺這軟件有點臃腫, 后台服務掛得太多了, 感覺不爽, 於是就沒搞它.
加上電腦上很早就裝有Oracle的Virtual Box, 於是就看了下, 其實Virtual Box也有支持串口設備, 按理說也可以用Windbg進行連接的. 一直覺得Virtual Box挺好用的.
既然寫了這篇博客, 那就證明我確實已經成功地進行調試了.
  下面說下步驟吧(已經完成的就忽略吧):
  (如果圖片顯示不完整, 請在右鍵菜單中查看該圖片)

1.安裝Virtual Box虛擬機
  官方網址:https://www.virtualbox.org/
  在左邊找到Downloads標簽, 選擇合適自己平台的安裝包就行了(可比VMWare小多了).
  這軟件自帶中文語言包, 且說是開源+免費軟件, 所以不要到其它地方去找什么破解, 綠色之類, 搞得不好反倒弄一身的XX.

2.安裝虛擬機操作系統
  對於VBox安裝虛擬機操作系統, 百度一下, 太多了...百度吧.
  我安裝的操作系統是XP_SP3, 新手嘛, 還是從"低級"的東西慢慢學起.

3.對虛擬機中的操作系統進行額外的設置
  常規的設置,比如內存大小, 顯存大小等, 請酌情分配就行.
  3.1 對串口的支持設置(需要在關機的條件下設置)

  注意管道的命名規則, 否則會創建失敗.



  3.2 在虛擬機和實機之間共享文件
    第一種辦法(目錄共享):





  第二種辦法(簡單方便, 但貌似會使電腦出現拖放問題):




  3.3 修改操作系統配置文件以啟動調試模式
  在虛擬機中, 找到 C:\Windows\boot.ini(隱藏,只讀),在最后加上一行:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
/debugport=com1就是上面創建的管道的命名后面的部分:\\.\pipe\com1,/baudrate=115200表示設置波特率(這個可以大點,速度快些,但不能隨便亂設置)
/debug 表示啟用調試
  修改后大概是這樣的:
[boot loader]
timeout=5
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" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200

  重啟虛擬機,  選擇第2項啟動菜單進入調試模式:



4. 配置Windbg進行調試
  4.1 下載符號文件(如果沒有)
    1) 到http://msdn.microsoft.com搜索下載
    2)到http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx
    我下載的是Windows XP with Service Pack 3 x86 checked symbols, all languages (File size: 202 MB)
    自己按需下載吧.
  4.2 新建一批處理腳本文件(雙機調試.bat)
  內容如下:

@echo off
::調試Windbg的路徑(有空格請加上雙引號)
set Windbg="I:\Dynamic Debug\WinDbg v6.11.0001.404 X86\windbg_EN.exe"
::設置命令行參數
::其中com:port=\\.\pipe\com1是上面創建的管道. 波特率設置要一致
::-y H:\Cache\symbols表示調試符號文件的路徑
set Param=-b -k com:port=\\.\pipe\com1,baud=115200,pipe -y H:\Cache\symbols
::打開調試
start "" %Windbg% %Param%
goto :eof

附圖:


保存后, 直接雙擊打開該bat腳本文件即可打開WinDbg並調試虛擬機(先要打開虛擬機並進入調試模式)


  一開始虛擬機可能處理未響應狀態(被調試), 按照上面的說明, 在下面的命令行中執行命令g即可繼續.
之后通過共享文件的方式, 加載相應的驅動/程序, 通過手動下斷點的方式進入調試:
  在驅動中手動加入斷點:
  #if DBG
    __asm int 3
  #endif

即可使虛擬機掛起到調試狀態了.

女孩不哭(QQ:191035066)@2013-01-02 10:34:47 http://www.cnblogs.com/nbsofer



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM