• <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>

            S.l.e!ep.¢%

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

            按照我這篇筆記寫的步驟去做,絕對能夠成功,并且還能大略地了解到為什么要這樣做的原因。第1部分是步驟,如果不想看原因的,直接按部照搬就可以成功。如果還想深入點(diǎn)了解為什么要做這些步驟,這些步驟的含義是什么?那就請繼續(xù)看第二部分。

            第一部分(步驟):

            先統(tǒng)一名稱,真實(shí)的操作系統(tǒng)叫HostOS,在VMware里虛擬的操作系統(tǒng)叫GuestOS。

            1.在VMware里安裝好GuestOS;下載WinDBG并安裝好。

            2.添加一個串口

            在關(guān)閉GuestOS的情況下才能添加硬件。添加串口的過程如下:
            添加硬件向?qū)?-> 添加 -> 選擇“串行端口” -> 選擇“輸出命名管道”
            命名管道: \\.\pipe\com_1
            終端是服務(wù)器.
            其它終端是一個應(yīng)用程序

            設(shè)備狀態(tài)
            * 打開電源時連接

            3.在GuestOS的boot.ini文件里填入如下內(nèi)容:

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

            4.創(chuàng)建一個WinDBG的快捷方式,在“目標(biāo)”一欄后面加上:

            -b -k com:pipe,port=\\.\pipe\com_1,resets=0

            5.重啟GuestOS,選擇Debug模式。

            6.雙擊第4步創(chuàng)建的那個快捷方式啟動WinDBG,它會自動去連接調(diào)試GuestOS。

            可以看到,已經(jīng)成功了,現(xiàn)在可以盡情地調(diào)試內(nèi)核了。

            第二部分(解說):

            原理就是VMware在GuestOS虛擬一個COM口,并在HostOS創(chuàng)建了一個管道,這個管道的一端連接GuestOS的COM口,另一端則是WinDBG,所以HostOS(WinDBG)和GuestOS的所有數(shù)據(jù)交換都是通過這個管道來流通轉(zhuǎn)發(fā)的。

            1.我的電腦沒有COM口,所以不能搭建調(diào)試環(huán)境?

            不是的,你的電腦有沒有COM口與這個調(diào)試環(huán)境沒有任何關(guān)系,整個過程根本沒有使用到你電腦的物理COM口。VMware只是在GuestOS虛擬了一個COM口而已。

            2.在創(chuàng)建串口(COM口屬于串口的一種)的過程中,看到指定的管道為“\\.\pipe\com_1”,我可以指定為其他嗎?

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

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

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

            4.看到很多教程都說到要勾選“I/O模式”,如圖:

            一定要勾選嗎?

            這個勾選不勾選都可以,我沒發(fā)現(xiàn)有什么大的區(qū)別。

            5.在更改GuestOS的boot.ini文件的時候,增加有“/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)的時候發(fā)現(xiàn),這個波特率其實(shí)也不一定要設(shè)為115200,完全可以修改為112233、445566等等其他數(shù)據(jù)。可能是因?yàn)閃inDBG自動調(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)試。各個參數(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)建一個WinDBG的快捷方式才能進(jìn)行調(diào)試嗎?

            不是的,我們完全可以先正常運(yùn)行WinDBG,然后選擇菜單“File”--->“Kernel Debug...”,然后會彈出對話框

            Baud Rate : 115200
            Port: \\.\pipe\com_1
            *Pipe
            *Reconnect
            Resets:0

            然后設(shè)置如上,點(diǎn)確定。這樣也是可以進(jìn)行調(diào)試的。

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

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

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

            日产精品久久久久久久| 久久99精品久久久久婷婷| 久久久久国产一级毛片高清板| 久久99精品国产麻豆不卡| 人妻无码精品久久亚瑟影视 | 久久精品国产亚洲av高清漫画| 久久久久亚洲AV无码网站| 久久中文字幕视频、最近更新| 99久久国产综合精品女同图片| 999久久久免费国产精品播放| 97精品伊人久久大香线蕉| 91久久精品无码一区二区毛片| 一本色道久久综合狠狠躁| 亚洲国产成人精品91久久久 | 国产精品久久久久久久久免费| 欧美午夜A∨大片久久| 99国产精品久久久久久久成人热| 久久久久久久久久免免费精品| 国产精品久久久久久吹潮| 久久久无码精品亚洲日韩蜜臀浪潮| 国产精品久久国产精麻豆99网站| 久久久久国产精品嫩草影院| 久久久久亚洲av毛片大 | 一97日本道伊人久久综合影院| 久久99国产精品久久久| 久久人人妻人人爽人人爽| 亚洲精品无码专区久久久| 亚洲国产精品成人久久蜜臀| 亚洲一区二区三区日本久久九| 99久久精品国内| 精品久久人妻av中文字幕| 久久精品国产亚洲77777| 少妇精品久久久一区二区三区| 亚洲香蕉网久久综合影视| 综合久久国产九一剧情麻豆| 久久人与动人物a级毛片| 99久久国产综合精品女同图片| 伊人久久精品无码二区麻豆| 久久久久人妻精品一区| 亚洲国产天堂久久综合网站| 久久精品国产一区二区电影|