使用windbg和vmware調(diào)試驅(qū)動(dòng)程序

使用windbg和vmware調(diào)試驅(qū)動(dòng)程序

ID:9814557

大?。?1.75 KB

頁數(shù):5頁

時(shí)間:2018-05-10

使用windbg和vmware調(diào)試驅(qū)動(dòng)程序_第1頁
使用windbg和vmware調(diào)試驅(qū)動(dòng)程序_第2頁
使用windbg和vmware調(diào)試驅(qū)動(dòng)程序_第3頁
使用windbg和vmware調(diào)試驅(qū)動(dòng)程序_第4頁
使用windbg和vmware調(diào)試驅(qū)動(dòng)程序_第5頁
資源描述:

《使用windbg和vmware調(diào)試驅(qū)動(dòng)程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、使用WinDBG和VMware調(diào)試驅(qū)動(dòng)程序轉(zhuǎn)自:呵呵,搞點(diǎn)突兀的標(biāo)題而已。其實(shí)說的還是如何使用WinDBG和VMware來搭建調(diào)試內(nèi)核的環(huán)境而已,這些網(wǎng)上已經(jīng)有數(shù)不清的教程了,不過我喜歡自己親手寫一下。第一,把這個(gè)過程寫一遍能加深印象,就算以后忘記了也可以有筆記查找,快速想起來。第二、網(wǎng)上的教程很多都是互相抄來抄去,連錯(cuò)誤也抄過去了。很典型一個(gè)錯(cuò)誤就是BaudRate,前面還寫115200,后面就寫成了11520了,狂汗!按照我這篇筆記寫的步驟去做,絕對(duì)能夠成功,并且還能大略地了解到為什么要這樣做的原因。第1部分是步驟,如果不

2、想看原因的,直接按部照搬就可以成功。如果還想深入點(diǎn)了解為什么要做這些步驟,這些步驟的含義是什么?那就請(qǐng)繼續(xù)看第二部分。第一部分(步驟):先統(tǒng)一名稱,真實(shí)的操作系統(tǒng)叫HostOS,在VMware里虛擬的操作系統(tǒng)叫GuestOS。1.在VMware里安裝好GuestOS;下載WinDBG并安裝好。2.添加一個(gè)串口在關(guān)閉GuestOS的情況下才能添加硬件。添加串口的過程如下:選擇"串行端口",選擇"輸出命名管道",其他如下設(shè)置:3.在GuestOS的boot.ini文件里填入如下內(nèi)容:multi(0)disk(0)rdisk(0)p

3、artition(1)WINDOWS="MicrosoftWindowsXPProfessionalDebug"/fastdetect/debugport=com1/baudrate=115200如圖:4.創(chuàng)建一個(gè)WinDBG的快捷方式,在"目標(biāo)"一欄后面加上:-b-kcom:pipe,port=.pipecom_1,resets=0如圖:5.重啟GuestOS,選擇Debug模式。6.雙擊第4步創(chuàng)建的那個(gè)快捷方式啟動(dòng)WinDBG,它會(huì)自動(dòng)去連接調(diào)試GuestOS??梢钥吹?,已經(jīng)成功了,現(xiàn)在可以盡情地調(diào)試內(nèi)核了。第二部

4、分(解說):原理就是VMware在GuestOS虛擬一個(gè)COM口,并在HostOS創(chuàng)建了一個(gè)管道,這個(gè)管道的一端連接GuestOS的COM口,另一端則是WinDBG,所以HostOS(WinDBG)和GuestOS的所有數(shù)據(jù)交換都是通過這個(gè)管道來流通轉(zhuǎn)發(fā)的。1.我的電腦沒有COM口,所以不能搭建調(diào)試環(huán)境?不是的,你的電腦有沒有COM口與這個(gè)調(diào)試環(huán)境沒有任何關(guān)系,整個(gè)過程根本沒有使用到你電腦的物理COM口。VMware只是在GuestOS虛擬了一個(gè)COM口而已。2.在創(chuàng)建串口(COM口屬于串口的一種)的過程中,看到指定的管道為"

5、.pipecom_1",我可以指定為其他嗎?可以的。這只是指定一個(gè)管道名字而已,VMware用這個(gè)名字來創(chuàng)建一個(gè)命名管道。我完全可以改成".pipeliangyu"、".pipeaaa"等等,但記得要把WinDBG的快捷方式處的管道名字更改為一樣。3.我可以在GuestOS的boot.ini文件更改那個(gè)COM口嗎?比如把COM1改為COM2?不可以的,VMware會(huì)把虛擬出的這個(gè)COM口總是定義為com1。GuestOS的其他COM口都得讓位。4.看到很多教程都說到要勾選"I/O模式",如圖:一定要勾選嗎?這

6、個(gè)勾選不勾選都可以,我沒發(fā)現(xiàn)有什么大的區(qū)別。5.在更改GuestOS的boot.ini文件的時(shí)候,增加有"/debugport=com1/baudrate=115200"這些內(nèi)容,含義是?使用的調(diào)試端口是com1,波特率是115200。這是在告訴GuestOS現(xiàn)在要調(diào)試內(nèi)核(操作系統(tǒng)),把調(diào)試信息往COM1口輸出,使用的波特率是115200。我在試驗(yàn)的時(shí)候發(fā)現(xiàn),這個(gè)波特率其實(shí)也不一定要設(shè)為115200,完全可以修改為112233、445566等等其他數(shù)據(jù)??赡苁且?yàn)閃inDBG自動(dòng)調(diào)節(jié)波特率來適配管道或COM口,所以波特率在這

7、里沒有實(shí)際意義。6.WinDBG的快捷方式那里添加了"-b-kcom:pipe,port=.pipecom_1,resets=0"這些內(nèi)容,含義是?大概意思就是使用管道".pipecom_1"來進(jìn)行內(nèi)核調(diào)試。各個(gè)參數(shù)的說明在WinDBG的參考文檔里面有,這里粘貼一下:-b(Kernelmodeonly)Thisoptionhastwoeffects:1.Thedebuggerwillbreakintothetargetcomputerimmediatelyuponconnection.2.Afterareboot,

8、thedebuggerwillbreakintothetargetcomputeroncethekernelisinitialized.SeeCrashingandRebootingtheTargetComputerfordetailsandforothermethodsof

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。