青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
簡(jiǎn)單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

??? 我這里將一步一步的介紹,是從新手的角度來講的,所以對(duì)高手來說,可能有些啰嗦。如果你看完這篇文章還不知道如何設(shè)置,那么原因可能有兩個(gè): 1. 我沒講好; 2. 你需要稍微認(rèn)真看下并實(shí)踐下,并實(shí)現(xiàn)對(duì)相關(guān)基本概念要有所了解。

本文參考了以下的 blog 及文章,在此對(duì)作者的辛勤勞動(dòng)表示感謝!

1. http://hi.baidu.com/1ian9yu

2. http://m.shnenglu.com/fwxjj/archive/2008/01/17/41349.html

?

一、環(huán)境的搭建

?????? 首先介紹如何使用 WinDbg VMware 來搭建調(diào)試內(nèi)核驅(qū)動(dòng)的環(huán)境。這里先把我用到的軟件版本說明下:

WinDbg 6.10 X86 http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a

Windows 符號(hào)表,當(dāng)然也是 XP 版本的, http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#d

VMware WorkStation 6.0 (這個(gè)網(wǎng)上搜,我是公司內(nèi)部網(wǎng)下的,應(yīng)該有更新的版本了,這個(gè)能用,所以就先用著,主要是公司大家統(tǒng)一安裝這個(gè))

虛擬機(jī)安裝的操作系統(tǒng)是 Windows XP SP2 ,真實(shí)的(我自己用的)操作系統(tǒng)也是 Windows XP SP2 。在這里,先統(tǒng)一稱呼,虛擬機(jī)操作系統(tǒng)叫 GuestOS ,實(shí)際的叫 HostOS

?

下面是詳細(xì)的步驟:

1. 下載 VMware 并安裝好

2. 下載 Windows 符號(hào)表并安裝好,按默認(rèn)設(shè)置即可( C:\Windows\Symbols\ ,這個(gè)路徑稍后要用到)

3. 下載 WinDbg 并安裝,也是默認(rèn)即可

4. 接下來在虛擬機(jī) VMware 里安裝操作系統(tǒng)( XP ),安裝好后啟動(dòng)進(jìn)入 GuestOS 修改 boot.ini 文件(找不到?在 C 盤根目錄下,要設(shè)置系統(tǒng)文件可顯示,如何設(shè)置就不說了,自己 Google )。在文件中添加一行(添在文件最后即可, 也即 operating systems] 節(jié)中加入一行),內(nèi)容如下:

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

上面可以完全 copy 過去

5. 隨后關(guān)閉系統(tǒng)。配制虛擬機(jī)的硬件,點(diǎn)擊 "Edit virtual machine settings" ,添加一個(gè) Serial Port ,選擇 "Output to named pipe" ,然后下一步,第一框里保持默認(rèn)的 \\.\pipe\com_1 , 第二框里選 "This end is the server." 第三框里選 "The other end is an application." 選中 "Connect at power on" 選項(xiàng),點(diǎn)擊完成,再在 settings 主界面的 I/O mode 選中 ”Yield CPU on poll” 選項(xiàng)。

好,以上是在虛擬機(jī)要做的全部事情,下面我們要在真實(shí)系統(tǒng)中做一些設(shè)置了。

?

6. 在真實(shí)系統(tǒng)中,我們要在設(shè)備管理器中。找到通訊端口 Com1 口,然后再屬性頁中修改他的速率(每秒位數(shù))為 115200

7. 為使用方便,我們?cè)谧烂嫘陆ㄒ豢旖莘绞剑ㄗ烂嬗益I - 新建 - 快捷方式),快捷方式的命令行為

"C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe" -y C:\Windows\Symbols\ -b -k com:pipe,port=\\.\pipe\com_1

上面可以完全 copy 過去,當(dāng)然引號(hào)內(nèi)的路徑是需要修改的,就是你安裝的 WinDbg 路徑了。

這里面 -y 后面的路徑就是我們前面安裝符號(hào)表的路徑。

名稱我設(shè)置為 WinDbg

好,到此為止,所有設(shè)置完畢,現(xiàn)在開始運(yùn)行了。

8. 再此啟動(dòng) GuestOS ,這個(gè)時(shí)候可以看到操作系統(tǒng)選擇屏幕了(類似你安裝了雙操作系統(tǒng)),我們選擇那個(gè)帶有 Debug 的。

9. 雙擊第 7 步創(chuàng)建的那個(gè)快捷方式 WinDbg ,它會(huì)去自動(dòng)連接 GuestOS ,這是在 WinDbg 里會(huì)顯示一些信息。

至此,環(huán)境設(shè)置完畢

附加說明:

原理就是 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 口屬于串口的一種)的過程中,看到指定的管道為 “\\.\pipe\com_1” ,我可以指定為其他嗎?

可以的。這只是指定一個(gè)管道名字而已, VMware 用這個(gè)名字來創(chuàng)建一個(gè)命名管道。我們完全可以改成 “\\.\pipe\liangyu” “\\.\pipe\aaa” 等等,但記得要把 WinDbg 的快捷方式處的管道名字更改為一樣。

3. 我可以在 GuestOS boot.ini 文件更改那個(gè) COM 口嗎?比如把 COM1 改為 COM2

不可以的, VMware 會(huì)把虛擬出的這個(gè) COM 口總是定義為 com1 GuestOS 的其他 COM 口都得讓位。

4. 看到很多教程都說到要勾選 “I/O mode” 一定要勾選嗎 ?

這個(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)?/span> WinDBG 自動(dòng)調(diào)節(jié)波特率來適配管道或 COM 口,所以波特率在這里沒有實(shí)際意義。

6.WinDbg 的快捷方式那里添加了 “-b -k com:pipe,port=\\.\pipe\com_1,resets=0” 這些內(nèi)容,含義是?

大概意思就是使用管道 “\\.\pipe\com_1” 來進(jìn)行內(nèi)核調(diào)試。各個(gè)參數(shù)的說明在 WinDbg 的參考文檔里面有,這里粘貼一下:

-b

(Kernel mode only) This option has two effects:

1. The debugger will break into the target computer immediately upon connection.

2. After a reboot, the debugger will break into the target computer once the kernel is initialized. See Crashing and Rebooting the Target Computer for details and for other methods of changing this status.

-k [ConnectType]

(Kernel mode only) Starts a kernel debugging session. For details, see Choosing Kernel Debugging Settings. If -k is used without any ConnectType options following it, it must be the final entry on the command line.

resets=0

Specifies that an unlimited number of reset packets can be sent to the target when the host and target are synchronizing. Use the resets=0 parameter for Microsoft Virtual PC and other virtual machines whose pipes drop excess bytes. Do not use this parameter for VMware or other virtual machines whose pipes do not drop all excess bytes.

7. 一定要這樣創(chuàng)建一個(gè) WinDbg 的快捷方式才能進(jìn)行調(diào)試嗎?

不是的,我們完全可以先正常運(yùn)行 WinDbg ,然后選擇菜單 “File”--->“Kernel Debug...” ,然后在彈出的對(duì)話框中進(jìn)行設(shè)置,這樣也是可以進(jìn)行調(diào)試的。

8. 上面第 8 、第 9 步有先后順序嗎?看到很多資料都很強(qiáng)調(diào)這個(gè)先后順序。

這個(gè)是沒有先后順序的。你可以先執(zhí)行第 8 ,再到第 9 步,或者先執(zhí)行第 9 ,再到第 8 步都是沒有關(guān)系的。

選擇 Debug 模式后,即使進(jìn)入系統(tǒng)操作了很久,運(yùn)行了很多東西,但只要你運(yùn)行 WinDbg ,照樣能夠連上去調(diào)試。所以說這里是沒有先后順序的。

?

?

?

下面介紹第二部分,驅(qū)動(dòng)調(diào)試

?

二、驅(qū)動(dòng)調(diào)試

?????? 編寫完驅(qū)動(dòng)后,我們當(dāng)然要進(jìn)行調(diào)試(除非你是蓄意想讓用戶不斷藍(lán)屏,當(dāng)然牛人除外),這不可能在 HostOS (本機(jī))里調(diào)試,否則 BOSD 就麻煩了,而且支持本機(jī)調(diào)試的調(diào)試器比較流行的只有 softice ,這個(gè)東西早就停止更新了,而且對(duì)目前的操作系統(tǒng)的支持更是非常不好。所以使用 WinDbg VMware 調(diào)試驅(qū)動(dòng)程序絕對(duì)是我們最佳的選擇。

?????? 在這里,我就以微軟自帶的 Passthru (其實(shí)什么驅(qū)動(dòng)都是一樣的)為例。

好了,開始。

1. 按照之前的說明搭好調(diào)試環(huán)境后,先用 WinDbg 連上 VMware ,如果 GuestOS 阻塞了,則在 WinDBG 輸入命令 “g” ,然后回車,直到讓 GuestOS 跑起來。我們把編譯好的驅(qū)動(dòng)文件 (*.sys) 放到 GuestOS 里,回到 WinDbg ,按 “Ctrl+Break” WinDbg 會(huì)讓 GuestOS 暫停下來,我們也可以在 WinDbg 的命令欄輸入命令了,在這里輸入 “bu drivername!driverentry” (本例是 bu passthru!driverentry, 大小寫不限)可以在驅(qū)動(dòng)的 DriverEntry 函數(shù)的入口點(diǎn)下一個(gè)延遲斷點(diǎn),其實(shí) BU 的意思就是 Set Unresolved Breakpoint WinDbg 會(huì)記住這個(gè)斷點(diǎn),當(dāng)這個(gè)驅(qū)動(dòng)被加載了并且執(zhí)行到這個(gè)地方, WinDbg 會(huì)暫停 GuestOS 讓你進(jìn)行調(diào)試操作。 drivername 是你的驅(qū)動(dòng)名字,比如我在這里的驅(qū)動(dòng)名字是 passthru ,那我在這里輸入的命令如下: bu passthru!driverentry

2. 回車后即下好斷點(diǎn)了。現(xiàn)在打開源文件,源文件在 HostOS 呢。 “Ctrl+O” 找到驅(qū)動(dòng)的源文件打開,我們打開 passthru.c

3. 還要設(shè)置符號(hào)路徑。 “Ctrl+S” 打開設(shè)置窗體,符號(hào)路徑一般有兩個(gè)(可以有多個(gè)),一個(gè)是你設(shè)置保存系統(tǒng)符號(hào)文件的路徑,另一個(gè)是你驅(qū)動(dòng)的 PDB 的路徑,以分號(hào)隔開。如下:

C:\Windows\Symbols\;E:\Passthru\driver\objchk_wxp_x86\i386

4. 記得勾選 “Reload” OK 后稍等片刻,等 WinDbg 把這些東西加載完畢后再操作。加載完后我們輸入 “g” ,回車,讓 GuestOS 跑起來。在 GuestOS 里運(yùn)行驅(qū)動(dòng)加載 / 卸載工具把我們的驅(qū)動(dòng)加載起來。可以看到,已經(jīng)斷下來了,我們可以源碼調(diào)試驅(qū)動(dòng)了。

?

注:打開源文件和設(shè)置符號(hào)路徑可以在一開始的時(shí)候就做,這是沒有嚴(yán)格先后順序的。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            老色批av在线精品| 亚洲国产黄色片| 国产精品永久入口久久久| 欧美日韩精品免费观看视一区二区| 久久久一区二区| 美日韩精品免费观看视频| 欧美a级理论片| 欧美精品久久久久久久久老牛影院| 欧美精品在欧美一区二区少妇| 欧美高清在线精品一区| 欧美日韩另类在线| 国产一区在线看| 亚洲黄一区二区三区| 亚洲视频你懂的| 久久久7777| 亚洲人成网站色ww在线| 一区二区三区精品国产| 亚洲欧美国产77777| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美影院久久久| 巨乳诱惑日韩免费av| 欧美日韩激情网| 国产亚洲二区| 日韩视频免费观看高清完整版| 午夜精品免费视频| 亚洲第一二三四五区| 亚洲视频你懂的| 鲁大师影院一区二区三区| 国产精品久久久久久超碰| 伊人成年综合电影网| 亚洲夜间福利| 欧美第一黄色网| 亚洲欧美日韩天堂| 欧美精品在线免费观看| 国产综合色一区二区三区| 一区二区三区www| 久久中文欧美| 亚洲一区二区在线免费观看视频| 美脚丝袜一区二区三区在线观看 | 日韩亚洲视频在线| 久久精品网址| 午夜精品久久久久久久久久久| 亚洲欧美日韩中文在线制服| 欧美大片在线观看| 在线欧美三区| 久久爱www.| 亚洲小视频在线| 欧美日韩一区二区三区四区五区| 亚洲国产精品一区二区第四页av | 欧美日韩国产综合新一区| 一区二区在线看| 欧美制服丝袜第一页| 99一区二区| 欧美日韩国产精品一区二区亚洲| 亚洲国产精品99久久久久久久久| 午夜精品久久久久久| 99精品国产一区二区青青牛奶| 久久性色av| 亚洲观看高清完整版在线观看| 久久久久久69| 久久av红桃一区二区小说| 国产小视频国产精品| 久久久亚洲精品一区二区三区| 亚洲欧美一区二区三区在线| 国产精品青草综合久久久久99| 亚洲一区二区在线看| 中国成人黄色视屏| 国产精品激情电影| 亚洲免费在线播放| 亚洲欧美成人一区二区三区| 国产精品久久久久毛片大屁完整版 | 欧美成人一区在线| 亚洲精品小视频| 亚洲日本欧美| 欧美日韩一区二区在线观看视频| 亚洲一二三区在线观看| 亚洲女性裸体视频| 在线观看视频欧美| 亚洲黑丝在线| 国产精品一区二区在线| 狼人社综合社区| 欧美激情五月| 欧美一区日韩一区| 欧美77777| 亚洲欧美另类久久久精品2019| 欧美亚洲自偷自偷| 亚洲激情在线视频| 亚洲香蕉在线观看| 亚洲国产婷婷香蕉久久久久久| 亚洲精品极品| 国产专区欧美专区| 亚洲毛片av| 韩日欧美一区二区| 亚洲美女黄色片| 久热综合在线亚洲精品| 亚洲黄色天堂| 宅男噜噜噜66一区二区| 韩国免费一区| 日韩午夜电影av| 国内精品伊人久久久久av一坑| 欧美激情精品久久久久久| 国产精品yjizz| 欧美国产日本在线| 国产情人综合久久777777| 亚洲国产精品va在线看黑人| 欧美性天天影院| 免费成人网www| 国产精品香蕉在线观看| 欧美成在线观看| 国产精品视频一二三| 亚洲高清自拍| 国内自拍亚洲| 亚洲男人天堂2024| 亚洲天天影视| 欧美成人资源| 美女视频黄免费的久久| 国产精品免费观看在线| 亚洲黄色成人久久久| 韩日欧美一区| 欧美一级片一区| 亚洲欧美日韩国产综合| 欧美伦理影院| 亚洲国产影院| 亚洲高清资源| 久久久久久久波多野高潮日日| 午夜在线精品偷拍| 欧美另类专区| 亚洲精品乱码久久久久久久久| 合欧美一区二区三区| 亚洲在线免费| 欧美一级黄色网| 国产精品一页| 午夜在线一区二区| 久久精品亚洲一区二区三区浴池| 国产精品亚洲成人| 亚洲欧美大片| 欧美中文在线字幕| 国产一区二区三区的电影| 亚洲字幕在线观看| 午夜影院日韩| 国产无一区二区| 久久国产精彩视频| 女人色偷偷aa久久天堂| 亚洲国产高清自拍| 欧美激情精品久久久久| 亚洲精品久久久久久久久久久| 日韩视频在线你懂得| 欧美日韩伦理在线免费| 国产精品99久久不卡二区 | 日韩午夜在线播放| 欧美日韩一区在线视频| 日韩午夜黄色| 亚洲欧美亚洲| 国产中文一区| 免费亚洲视频| 一本色道久久综合亚洲精品小说 | 国产乱码精品一区二区三| 亚洲欧美综合网| 亚洲国产三级网| 国语自产精品视频在线看抢先版结局 | 久久久久久久久久久成人| 激情六月婷婷久久| 欧美成人综合网站| 一本色道久久综合狠狠躁篇的优点| 亚洲一区999| 国产欧美日韩精品丝袜高跟鞋| 欧美在线视频网站| 亚洲黑丝在线| 午夜精品一区二区在线观看| 国内精品久久久久影院 日本资源| 久久一综合视频| 一区二区精品| 免费精品99久久国产综合精品| 99国产精品久久久久久久| 国产精品视频内| 欧美成人69av| 亚洲欧美日韩综合一区| 亚洲国产激情| 久久精品亚洲国产奇米99| 亚洲日本va午夜在线影院| 国产精品久久久久久久久久尿 | 免费观看成人鲁鲁鲁鲁鲁视频 | 日韩视频在线免费观看| 国产欧美精品一区aⅴ影院| 久久久蜜桃精品| 亚洲图片欧美日产| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美在线磁力| 91久久久久久久久久久久久| 欧美性猛交xxxx免费看久久久 | 欧美日韩国产色站一区二区三区| 午夜国产精品影院在线观看| 亚洲黄色av| 欧美夫妇交换俱乐部在线观看| 亚洲欧美日韩国产成人精品影院| 亚洲国产小视频在线观看| 国产在线精品一区二区夜色| 国产精品户外野外| 欧美三区在线观看| 欧美日韩国产页|