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

            elva

            使用Virtual PC進(jìn)行Windows內(nèi)核調(diào)試的詳細(xì)過程

            使用WinDbg進(jìn)行Windows內(nèi)核調(diào)試通常需要兩臺(tái)計(jì)算機(jī),一臺(tái)是Debuggee,一臺(tái)作為Debugger,又成為Host。使用Virtual PC可以在同一臺(tái)電腦上進(jìn)行內(nèi)核調(diào)試,對于某些調(diào)試任務(wù)來說還是非常有用的。

            下面以Virtual PC 2004為例,介紹一下利用Virtual PC進(jìn)行Windows內(nèi)核調(diào)試的詳細(xì)過程。

            1,下載并安裝Virtual PC 2004,從略。

            2,啟動(dòng)Virutal PC Console(控制臺(tái)),創(chuàng)建一臺(tái)新的虛擬PC,安裝向?qū)У奶崾九渲糜脖P、內(nèi)存等參數(shù)。

            3,在剛才創(chuàng)建的虛擬PC上安裝操作系統(tǒng),這個(gè)操作系統(tǒng)應(yīng)該是你要調(diào)試的Windows版本。比如你想調(diào)試你的驅(qū)動(dòng)程序在Windows Server 2003上出現(xiàn)的問題,那么就安裝Windows Server 2003。我們以Windows 2000為例。

            4,配置虛擬PC的串行口,在Virtual PC的控制臺(tái)中選擇Windows 2000,然后點(diǎn)擊Settings按鈕彈出設(shè)置對話框,然后在左側(cè)的列表中(如下圖)選擇COM1。

            右側(cè)選擇Named Pipe選項(xiàng),即使用命名管道來模擬串行口,然后輸入管道的完整名稱:\\.\pipe\com_1,com_1可以為其它名稱,但是前面的部分應(yīng)該保持不變。

            5,啟動(dòng)虛擬PC中的Windows 2000,然后進(jìn)入命令行窗口,執(zhí)行如下命令以便在啟動(dòng)菜單中增加調(diào)試選項(xiàng):

            c:

            cd\

            attrib -r -h

            edit boot.ini

            然后將其最末一行復(fù)制,并加入調(diào)試選項(xiàng),成為為如下狀態(tài):

            6,在虛擬PC中選擇重新啟動(dòng)Windows 2000,當(dāng)出現(xiàn)啟動(dòng)菜單時(shí),按方向鍵使其停止自動(dòng)計(jì)時(shí),等待在這里。

            7,在主機(jī)(debugger)上準(zhǔn)備啟動(dòng)WinDbg,考慮每次輸入命令行參數(shù)太麻煩,所以建議建立一個(gè)如下內(nèi)容的批處理文件,并將其放到與WinDbg.exe同位置的目錄中。

            windbg -k com:pipe,port=\\.\pipe\com_1

            8,運(yùn)行批處理文件,使其也進(jìn)入等待狀態(tài):

            9,切換到虛擬PC窗口,選擇帶有“Debug Enabled”的一項(xiàng)然后回車啟動(dòng)。

            10,切換到WinDbg窗口并觀察,如果一切順利,那么會(huì)有如下類似信息輸出:

            Connected to Windows 2000 2195 x86 compatible target, ptr64 FALSE
            Kernel Debugger connection established.
            Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
            Executable search path is:
            Windows 2000 Kernel Version 2195 UP Free x86 compatible
            Kernel base = 0x80400000 PsLoadedModuleList = 0x8046a4c0
            System Uptime: not available

            11,見到如上信息就說明WinDbg已經(jīng)與虛擬PC中運(yùn)行的Windows 2000成功建立調(diào)試對話了。如果想感受一下將Windows控制于股掌之中的快感,那么就按下Ctrl+Break,隨著按鍵發(fā)出,Windows 2000會(huì)被立刻定住。WinDbg中會(huì)顯示如下信息:

            *******************************************************************************
            *                                                                             *
            *   You are seeing this message because you pressed either                    *
            *       CTRL+C (if you run kd.exe) or,                                        *
            *       CTRL+BREAK (if you run WinDBG),                                       *
            *   on your debugger machine's keyboard.                                      *
            *                                                                             *
            *                   THIS IS NOT A BUG OR A SYSTEM CRASH                       *
            *                                                                             *
            * If you did not intend to break into the debugger, press the "g" key, then   *
            * press the "Enter" key now.  This message might immediately reappear.  If it *
            * does, press "g" and "Enter" again.                                          *
            *                                                                             *
            *******************************************************************************
            此時(shí)WinDbg的命令提示符區(qū)會(huì)顯示一段時(shí)間*BUSY*(或者其它無效狀態(tài),老本本的WinDbg),這是因?yàn)閃inDbg在尋找調(diào)試符號(hào)。


            在你非常熟悉以上過程之后,其實(shí)可以不完全拘泥以上過程的, 比如可以先讓W(xué)indows 2000以調(diào)試選項(xiàng)運(yùn)行起來,然后再運(yùn)行WinDbg。

            最后再介紹幾種常見的失敗情況:

            1)啟動(dòng)WinDbg,但是出現(xiàn)下圖所示的錯(cuò)誤信息,Win32 error 2,即指定的文件名找不到,這是因?yàn)樘摂MPC還沒有啟動(dòng),還沒有創(chuàng)建這個(gè)管道\\.\pipe\com_1, 系統(tǒng)中不存在這樣的文件。應(yīng)該運(yùn)行虛擬PC,哪怕只到啟動(dòng)選項(xiàng)也可以,便不會(huì)再有這個(gè)錯(cuò)誤了。

            posted on 2008-07-23 19:06 葉子 閱讀(1014) 評論(0)  編輯 收藏 引用 所屬分類: 驅(qū)動(dòng)開發(fā)

            久久久久久久久波多野高潮| 久久无码精品一区二区三区| 久久亚洲精品无码aⅴ大香| 国内精品伊人久久久久妇| 久久精品国产亚洲AV久 | 久久99精品国产99久久6| 内射无码专区久久亚洲| 久久久精品人妻一区二区三区四| 精品久久久久久无码中文字幕一区 | 欧洲人妻丰满av无码久久不卡| 久久久久99精品成人片| 国产精品久久久久蜜芽| 青青草国产精品久久久久| 亚洲性久久久影院| 久久91精品国产91久久户| 99久久夜色精品国产网站| 国产精品成人精品久久久| 蜜臀av性久久久久蜜臀aⅴ| 无码乱码观看精品久久| 久久国产精品国产自线拍免费| 久久久久99这里有精品10| 国产精品嫩草影院久久| 国产精品美女久久久久久2018| 无码国内精品久久人妻麻豆按摩| 青青青青久久精品国产h| 亚洲精品乱码久久久久久按摩| 国产精自产拍久久久久久蜜| 久久成人国产精品二三区| 亚洲乱码精品久久久久.. | 色综合久久久久综合99| 国産精品久久久久久久| 日本道色综合久久影院| 久久综合九色综合欧美狠狠| 久久九九精品99国产精品| 天天躁日日躁狠狠久久| 亚洲精品乱码久久久久久自慰| 国内精品久久久久影院老司| 色99久久久久高潮综合影院| 亚洲午夜精品久久久久久浪潮| 婷婷国产天堂久久综合五月| 亚洲国产一成久久精品国产成人综合|