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

            road420

            導(dǎo)航

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            vs2005 調(diào)試

            1,斷點(diǎn)設(shè)置有技巧:

            1)設(shè)置條件斷點(diǎn),比如i==10,變量改變時(shí)斷點(diǎn);

            2)如何讓斷點(diǎn)在指定的命中次數(shù)或者大于某個(gè)次數(shù)時(shí)觸發(fā)呢?方法是設(shè)定幾個(gè)斷點(diǎn)的HitCount,右鍵單擊斷點(diǎn),在彈出菜單中選擇Hit Count;

            3)When Hit,這個(gè)選項(xiàng)可以讓我們?cè)诿袛帱c(diǎn)后做一些事情,包括輸出一些內(nèi)容,或者調(diào)用宏,比如輸出一個(gè)程序中變量的值;

            4)利用斷點(diǎn)的Filter功能,比如我希望斷點(diǎn)只有被機(jī)器名為yizhu的機(jī)器訪問才能觸發(fā);

            具體參見:一篇介紹VS2005調(diào)試斷點(diǎn)技巧的文章

            2. 怎樣判斷加載的dll的正確性?

               調(diào)試時(shí),打開Debug->Window->Modules,在窗口中顯示的就是當(dāng)前進(jìn)程加載的所有dll及其詳細(xì)信息,如果

            斷點(diǎn)無法擊中,可以檢查這里,看是否有匹配的pdb文件或者是加載了錯(cuò)誤的dll

            3. 已經(jīng)開始調(diào)試的工程加入另外的進(jìn)程并且調(diào)試

               如果你在調(diào)試客戶端,但是服務(wù)器需要調(diào)試,那么使用菜單中的Tools-> Attach to process進(jìn)行進(jìn)程掛接,這種方法可以掛接所有windows下的程序,能否調(diào)試,就看其是否調(diào)試版和有調(diào)試用的PDB文件

            4. 同時(shí)啟動(dòng)多進(jìn)程進(jìn)行調(diào)試

              在Solution的屬性中的Common Properties->Startup Project。選擇Multiple startup projects。這個(gè)選項(xiàng)是可以記憶的,下次打開可以直接調(diào)試,非常方便

            5.調(diào)試Windows Service

             MSDN推薦的方法
            1、調(diào)試windows服務(wù)的初始化、啟動(dòng)
              另寫一個(gè)程序控制服務(wù)的初始化和啟動(dòng)
              注意:OnStart里寫Log, OnStart里要在30秒返回. 不然啟動(dòng)就失敗了! 所以O(shè)nStart里不要放太多代碼! 可以用異步或線程.
            2、調(diào)試windows服務(wù)的其他方面
            1 ) 安裝您的服務(wù) : intallutils xx.exe
            2) 可從“服務(wù)控制管理器”、“服務(wù)器資源管理器”或代碼啟動(dòng)服務(wù)
            3) vs: 設(shè)置相關(guān)斷點(diǎn),啟動(dòng)調(diào)試,再在工具欄中選擇 調(diào)試->附加到進(jìn)程..., 選擇您的服務(wù), 確定。
            3、trace方法
            1)添加調(diào)試方法

            private static void DebugRun(string[] args)

            2)改寫程序入口為如下:

            public static void Main(string[] args)
            {
            #if DEBUG
            DebugRun(args);
            #else
            /*
            初始化服務(wù)
            */
            #endif
            }

            3)加入2種調(diào)試代碼

            EventLog.WriteEntry("...");
            System.Diagnostics.Debug.WriteLine("...");

             

            6,遠(yuǎn)程調(diào)試技術(shù)


                顧名思義,就是要調(diào)試的程序和調(diào)試器本身并不在一臺(tái)機(jī)器上。由于虛擬機(jī)技術(shù)的盛行,在虛擬機(jī)里面運(yùn)行待調(diào)試的程序,而在外面運(yùn)行調(diào)試器,也是一種比較流行的做法。

            1 為什么使用遠(yuǎn)程調(diào)試
               遠(yuǎn)程調(diào)試有如下好處:
                a. 能讓產(chǎn)品運(yùn)行在一個(gè)比較干凈的環(huán)境。有的時(shí)候如果產(chǎn)品安裝在一個(gè)裝好集成環(huán)境的機(jī)器上,某些bug并不能顯示出來。
                b. 易于部署調(diào)試環(huán)境。很多產(chǎn)品都非常復(fù)雜,比如很多都以service方式運(yùn)行或者要load很復(fù)雜的resource,想在調(diào)試器里面直接按F5運(yùn)行,越來越難。
                c. 對(duì)于游戲等全屏方式運(yùn)行的程序,尤其有用。以前我對(duì)調(diào)試directx程序非常頭疼。

            2 怎樣使用遠(yuǎn)程調(diào)試
               使用vs2005進(jìn)行遠(yuǎn)程調(diào)試,詳細(xì)的介紹參考:http://support.microsoft.com/kb/910448

               簡單的來說,
               1)在被調(diào)試的機(jī)器上面運(yùn)行Msvsmon.exe
               2)在調(diào)試機(jī)器上面運(yùn)行vs2005,并attach到遠(yuǎn)程機(jī)器的某個(gè)進(jìn)程

            3 注意事項(xiàng)

               a. 設(shè)置好正確的權(quán)限
               被調(diào)試機(jī)器和調(diào)試機(jī)器需要互相信任的權(quán)限(two-way)。如果兩臺(tái)機(jī)器在同一個(gè)workgroup,讓兩臺(tái)機(jī)器擁有一個(gè)相同的賬號(hào)和密碼,然后以這個(gè)賬號(hào)運(yùn)行。如果兩臺(tái)機(jī)器在一個(gè)域里面,比較簡單,Msvsmon可以設(shè)置權(quán)限。如果一臺(tái)機(jī)器在domain里面,另外一臺(tái)不在,同樣是讓兩臺(tái)機(jī)器擁有一個(gè)相同的賬號(hào)和密碼,然后以這個(gè)賬號(hào)運(yùn)行。
               對(duì)于Windows XP要特別注意一下,設(shè)置匿名的訪問權(quán)限才可以work , http://support.microsoft.com/kb/908099

               b.設(shè)置好symbol
               什么,你不知道什么是symbol?簡單的來說,symbol file(*.pdb) is for source-level debugging. VS2005就是靠它來調(diào)試exe的。默認(rèn)情況下debug版本生成的,而release版本不生成pdb.設(shè)置好 [Project proerties]-[C/C++]-[Debug Information Format]-Program Database就可以了。
               為了減少symbol方面的麻煩,最簡單的做法是讓被調(diào)試機(jī)器上的binary版本和本地compile出來保持一致。

            posted on 2009-10-23 08:59 深邃者 閱讀(841) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久亚洲国产欧洲精品一| 久久亚洲天堂| 久久久久久国产精品无码超碰| 色综合久久久久无码专区| 麻豆AV一区二区三区久久| 久久99国产精品久久99| 久久久久久国产a免费观看不卡| 色婷婷综合久久久久中文字幕| 久久久无码精品亚洲日韩蜜臀浪潮| 久久综合精品国产二区无码| 久久强奷乱码老熟女| 久久亚洲春色中文字幕久久久| 久久综合色区| 亚洲午夜精品久久久久久人妖| 日韩乱码人妻无码中文字幕久久| 精品久久久久久无码人妻蜜桃| 久久精品中文无码资源站 | 久久久久久久精品成人热色戒| 久久综合给合久久狠狠狠97色69| 久久久久无码国产精品不卡| 97久久超碰成人精品网站| 久久99热这里只有精品66| 精品国产一区二区三区久久蜜臀| 国产精品一区二区久久| 久久精品无码一区二区无码| 麻豆久久久9性大片| 亚洲国产成人久久综合碰| 久久AAAA片一区二区| 94久久国产乱子伦精品免费 | 亚洲精品乱码久久久久久久久久久久 | 亚洲人成网站999久久久综合 | 日韩精品无码久久一区二区三| 久久国产精品成人影院| 亚洲中文久久精品无码ww16 | 色综合久久中文字幕综合网| 精品少妇人妻av无码久久| 久久精品国产日本波多野结衣| 亚洲成av人片不卡无码久久| 伊人热热久久原色播放www| 久久性精品| 国产精品99久久久久久宅男小说|