1. 程式人生 > >windbg+vmware除錯驅動 x86 x64 (適合主機為xp且vmware為6.5的環境)

windbg+vmware除錯驅動 x86 x64 (適合主機為xp且vmware為6.5的環境)

       除錯驅動使用此文方法已過時,可以參考使用visualddk+vmware+windbg,具體請參考以下連結:(添加於2014-1-2)

    近來一直在學習驅動相關內容,所以自然牽涉到除錯驅動的問題。查閱資料甚多,但還未發現有能把整個除錯框架串起來的資料,現做一個總結,請各位指正,謝謝!

   一、安裝windbg+vmware,配置主機與虛擬機器

1、windbg是微軟提供的免費的核心級的除錯工具,到處可以下載

2、vmware不是免費的,不過在網上可以找到破解版。我用的是6.5的。

3、完成了上面二個軟體的安裝後。進入下一步工作。即配置主機和虛擬機器。

4、在vmware裡安裝作業系統(我裝的是winxp,sp2)。這個不會,請查閱相關資料。

5、編輯vmware中winxp這個作業系統的C盤下的boot.ini檔案,在[operating systems]節裡,新增下面一句話:

multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional - debug" /fastdetect /debug /debugport=com1

6、開啟vmware中winxp的裝置管理器,選擇埠(com1),如圖一

圖一

7、雙擊這個"com1",在彈出的對話方塊中,設定如圖二

圖二

8、關閉vmware下的作業系統。配置虛擬機器的硬體,VM->Settings->Add->

加一個Serial Port,選擇"Output to named pipe",然後下一步,第一框裡保持預設的

注:如果想同時除錯二個或多個虛擬機器的話,可將com_1改為com_2,com_3等(11-02-2009新增)

第二框裡選"This end is the server."
第三框裡選"The other end is an application."
選中 "Connect at power on"
然後點選 "Advanced>>"然後在新視窗中選中 "Yield CPU on poll"。儲存退出。好了,以上就是虛擬機器系統要做的全部事情。

到此,虛擬機器的設定基本完畢。

9、開啟我們真實的作業系統。(我的還是winxp,sp2)

重得6,7步,不過此時是在真實的作業系統中。

10、設定windbg的快捷方式,即它執行時的引數。如下

"D:/Program Files/Debugging Tools for Windows/windbg.exe" -k com:port=//./pipe/com_1,baud=115200,pipe

"D:/Program Files/Debugging Tools for Windows/windbg.exe",這個串是你的windbg.exe檔案所在路徑,後面的是引數。分號是有的。

注意:"D:/Program Files/Debugging Tools for Windows (x64)/windbg.exe" -k com:pipe,port=//./pipe/com_1   這個是X64主機的設定,上面為x86主機的設定

所以說x64下vc6,vs200x系列編寫的程式同樣可以通過Windbg來除錯。

注:如果想同時除錯二個或多個虛擬機器的話,可以把上面的com_1改為com_2,com_3,依此類推,選擇哪個就看你在第8步的選擇(11-2-2009 新增)

11、OK.所有的工作都完成了。現在開啟虛擬機器。並選擇如圖三所示 (注意,此時在真實主機裡開啟windbg,然後進行第12步,這一步很關鍵,如果你先選擇做第12步,然後再啟動windbg,則windbg永遠無法 connect 虛擬機器)

圖三

12、選擇圖三“啟用除錯程式”選項,並按回車,此時vmware的作業系統處於停頓狀態。這是關鍵的一步,很多文章裡沒有說清楚,導致不能除錯。

13、在做完12步後,在真實作業系統中,執行windbg,看,是不是可以看到除錯資訊了,雖然看不懂。此時vmware下的作業系統,開始進入我們熟悉的歡迎介面了。

14、在vmware的操作裡開啟monitor這個軟體,相信大家都用過了,然後File->Open Driver.這樣就算是裝載了我的們的驅動了。

15、切換到真實主機,我們在windbg中,選擇File->Open source file(或者Ctrl+O),這樣我們就可以除錯了,除錯方法和除錯應用程式如出一轍,我就廢話了。

注意:我們的驅動程式(即.sys)檔案可以在真實系統下編寫,也可以在vmware下的作業系統下編寫,但最好還是在真實主機下編寫,這樣除錯起來稍微方便一些。

寫了這麼多,不知是否解開了你的疑惑。有問題,我們隨時溝通,謝謝!

最後說一下,並不是只有通過這種方式才可以進行核心除錯的,還有很多工具可以這樣處理,

如KDVMWARE,http://www.zezula.net/en/fstools/kdvmware.html

雙如,virtualKD,http://virtualkd.sysprogs.org/tutorials/install/

上述兩個工具也是非常的好。

相關推薦

windbg+vmware除錯驅動 x86 x64 (適合主機xpvmware6.5環境

       除錯驅動使用此文方法已過時,可以參考使用visualddk+vmware+windbg,具體請參考以下連結:(添加於2014-1-2)     近來一直在學習驅動相關內容,所以自然牽涉到除錯驅動的問題。查閱資料甚多,但還未發現有能把整個除錯框架串起來的資料

spark遠端debug之除錯spark on yarn 程式(基於CDH平臺,1.6.0版本

簡介 由於spark有多種執行模式,遠端除錯的時候,雖然大體步驟相同,但是還是有小部分需要注意的地方,這裡記錄一下除錯執行在spark on yarn模式下的程式。 環境準備 需要完好的Hadoop,spark叢集,以便於提交spark on yarn程式。我這裡是基

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

一、安裝環境 主機:Windows 7虛擬機器:VMware 9 +win7(被除錯機)Windbg: 6.12 二、虛擬機器配置 1.右擊虛擬機器系統->設定->彈出虛擬機器設定框->若是安裝了虛擬印表機它會把串列埠1佔用,所以這裡要把虛擬印表機刪除

【舊文章搬運】Windbg+Vmware驅動除錯入門(三)---Windbg基本除錯入門

原文發表於百度空間,2009-01-09========================================================================== 這一節的內容是Windbg入門,用一些基本的命令告訴你如何使用Windbg~~僅作入門,更詳細的可以參考Raymond

(整理+原創windbg+vmware進行驅動原始碼除錯

一般情況下驅動是不能進行源程式碼級別的除錯的,原因是驅動程式碼都是執行在核心模式,所以要進行原始碼級除錯的話,需要雙機(一臺除錯機(可以是虛擬機器)一臺主機),當主機進行除錯的時候,除錯機整個暫停執行 網上的教程說的不清楚,整理了個,免得以後要用找不到  一.安裝檔案:(這些換成你自己的路徑,不一定要一樣的

Xp+WinDBG+VMware除錯核心

轉:https://www.cnblogs.com/lzjsky/archive/2010/12/14/1905275.html 呵呵,搞點突兀的標題而已。其實說的還是如何使用WinDBG和VMware來搭建除錯核心的環境而已,這些網上已經有數不清的教程了,不過我喜歡自己親手寫一下。第一,把這個

windbg除錯驅動程式

不正確之處歡迎指正,高手勿噴~ 配置windbg路徑 Symbol path:SRV*F:\Windows\symbolxp3*http://msdl.microsoft.com/download/symbols;C:\Users\bojay\Desktop\first\objchk_wx

windbg + vmvare 配置除錯驅動

這裡呢我還是建議先拿來老的東西看看,自己動手實踐下,配置這個除錯環境,在VS2015中可以通過編譯器直接和虛擬機器連結,但是具體的怎麼實現的還是要通過原來的配置過程瞭解,所以,這裡就寫下原來的雙機除錯

windbg 除錯驅動設定斷點

在對windows的驅動做雙機除錯時,總會需要在自己編寫的驅動程式碼上設定斷點。  1 這需要首先,在windbg上設定工作空間(workspace)                      在這步裡面,需要將自己生成的符號檔案,能夠讓windbg搜尋到,即將自己符號檔案

vmware中橋接丶僅主機丶net模式的區別

子網掩碼 經驗 運行 如果 idg ip地址配置 網絡 網上 註意 VMWare提供三種工作模式橋接(bridge)、NAT(網絡地址轉換)和host-only(主機模式)。 橋接模式   在橋接模式下,VMWare虛擬出來的操作系統就像是局域網中的一臺獨立的主機(主機

x86,x64,Any CPU區別

64位操作系統 動態 cpu sdn 我們 detail 加載 不能 項目 https://blog.csdn.net/zuguangboy/article/details/51509670 1,即主程序(編譯出來是exe文件的)是x86平臺下編譯的,而它所依

Zend Studio 12.5.1 x86 x64通用破解補丁註冊碼20150519下載

Zend Studio破解版是專門為PHP開發打造的一款整合開發環境,提起PHP開發,都會想到這款大名鼎鼎的Zend Studio,該軟體在行業領域屢獲大獎,知名度在國際上都是首屈一指的,它具有強大的專業編輯工具和除錯工具。不光包含了編輯器所具備的程式碼高亮,語法自動縮排,書籤功能外,而且還

Windbg程式除錯系列3-執行緒阻塞問題

上一篇博文給大家分享了使用Windbg分析記憶體洩露問題: Windbg程式除錯系列2-記憶體洩露問題 本篇我們繼續跟大家分享,如何分析解決執行緒阻塞問題。 從根本上講,執行緒阻塞屬於程式Hang的一種,其表現主要有: 1. 隨著請求的增加,執行緒數一直增加,可能會把執行緒池打爆

Windbg程式除錯系列4-Live Debugging

上篇博文中給大家分享了使用Windbg分析執行緒阻塞問題: Windbg程式除錯系列3-執行緒阻塞問題 本篇中我們繼續,跟大家分享附加程序實時除錯-Live Debugging。 先說一下使用Windbg附加程序實時除錯的應用場景和注意事項: 應用場景: 整合測試環境,影響異常後,分析異常和執

Windows x86/ x64 Ring3層注入Dll總結

http://www.jb51.net/article/96040.htm 提升程式的許可權 要對目標程序注入Dll  基本思路是:1.在目標程序記憶體空間申請記憶體;2.在剛申請的記憶體中寫入Dll完整路徑;3.建立新執行緒,去執行LoadLibrary,從而完成注入Dll。

VMware中Linux虛擬機器掛載主機共享資料夾的方法

  注意:要在主機與虛擬機器中設定共享資料夾,需要安裝VMware Tools或open-vm-tools工具。open-vm-tools可能不能自動掛載共享資料夾。自動掛載點是“/mnt/hgfs”。   1、進入VMware選單欄中的虛擬機器設定選項——共享資料夾設定中新增主機中用來給客戶機共享的目錄。

關於.NET編譯的目標平臺(AnyCPU,x86,x64)

在VisualStudio中專案平臺屬性包含x86/x64/AnyCPU三個選項,之前的專案中並沒有特別去關注這一點,最近的專案中涉及到了在不同平臺執行的問題,所以專門瞭解並整理了這方面的知識。 x86/x64/AnyCPU的含義 在vs中這一選項被稱為“目標平臺”,也就是編譯成功的專案最終是要

VMware 沒有未橋接的主機網路介面卡【獨家,原創】

先上圖,故障現象如此圖     先後百度谷歌了各種資料,尤其是CSDN,各種帖子都是一個版本的回答,抄襲嚴重,在此鄙視一下。 然後和同事一起研究了一個來小時,搜尋了各種方法,虛擬機器版本嘗試了好幾個。也嘗試了強制清除,The trouble is still 表情和心

VueScan Pro for Mac(專業萬能掃描器驅動程式)x64去水印 中文破解版

相信掃描器是每個Mac使用者經常會使用的硬體裝置吧!小編這邊為大家帶來了最新的vuescan for Mac破解版,這是世界上最受歡迎的掃描器軟體。vuescan x64 破解版已經廣泛用於攝影師,家庭使用者,掃描服務和公司,功能非常的強大。 VueScan Pro for Mac(專業萬能掃描

程式異常崩潰後用windbg輔助除錯解決的經驗

狀況:我的程式呼叫別人的庫做 檔案寫入工作。           在這一過程中出現異常,程式崩潰。           經反覆檢查,認為自己的程式沒有錯,但無法判斷在別人庫裡哪裡有錯。   &