中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > Visual Studio調(diào)試中的斷點技巧
基于PHP的cURL快速入門 回到列表 ASP.NET頁面間數(shù)據(jù)傳遞的方法
 Visual Studio調(diào)試中的斷點技巧

作者: 時間: 2010-01-15 文檔類型:原創(chuàng) 來自:藍(lán)色理想

第 1 頁 Visual Studio調(diào)試中的斷點技巧 [1]
第 2 頁 Visual Studio調(diào)試中的斷點技巧 [2]

不知道能不能算是技巧啦,寫出來放到首頁貽笑大方而已。

函數(shù)斷點

在前面的文章Visual Studio調(diào)試之避免單步跟蹤調(diào)試模式里面我講了如何設(shè)置函數(shù)斷點,說實話,我個人喜歡設(shè)置函數(shù)斷點,而不是在代碼行里面設(shè)置斷點。一般來說,函數(shù)斷點在下面幾種情形下有用:

  1. 例如調(diào)試一個網(wǎng)站程序,你通過分析網(wǎng)站的日志發(fā)現(xiàn)最有可能發(fā)生錯誤的函數(shù),打開調(diào)試器并將調(diào)試器附加到程序上去,設(shè)置函數(shù)斷點,重新執(zhí)行網(wǎng)站……這樣做的好處是,不用到處打開源文件去找出錯的源代碼行,調(diào)試器會自動打開源代碼,并且在函數(shù)的入口處中斷(豈不是很方便?)。
  2. 例如你在閱讀源代碼的時候,通常在讀到虛函數(shù)調(diào)用的時候,因為通常這種調(diào)用都是通過基類指針調(diào)用的,而你又一時半會不知道到底有哪個繼承類的Overloading函數(shù)會被調(diào)用到,函數(shù)斷點可以告訴你。
  3. 或者一種特殊的情形,你想讀一個程序的源代碼,但就是找不到入口Main函數(shù),例如.NET程序,那么直接在Visual Studio里面按F11就能幫你找到入口函數(shù)這是函數(shù)斷點的一個特殊情形。
  4. 比如你在調(diào)試Web Service函數(shù),設(shè)置函數(shù)斷點也是一個快捷的調(diào)試方法,這個技巧跟技巧1類似。

當(dāng)然,可能有些讀者沒有辦法成功設(shè)置函數(shù)斷點,如果設(shè)置函數(shù)斷點失敗,請閱讀我的文章“不能設(shè)置斷點的檢查步驟”。如果里面有一些名詞術(shù)語(術(shù)語請參看文章:調(diào)試術(shù)語)不知道或者不知道如何設(shè)置的話,呃,我會另寫一篇文章講解。

斷點編程

有的時候你可能會碰到這種情況,觸發(fā)一個斷點以后,你發(fā)現(xiàn)需要修改一些值,才能使程序繼續(xù)正確執(zhí)行下去。例如我以前在中文版本的操作系統(tǒng)上,使用sscli里面(調(diào)試版)的csc.exe編譯器編譯一些包含語法錯誤或者語法警告的C#源文件的時候,csc.exe總是會莫名其妙地報告內(nèi)部嚴(yán)重錯誤,然后就崩潰了。我將調(diào)試器附加上去以后,發(fā)現(xiàn)是一個ASSERT錯誤,ASSERT(lcid == 0x409),表示sscli里面的csc.exe總是默認(rèn)自己在英文操作系統(tǒng)(或者說英文環(huán)境)里面運行。而且這一條語句會被執(zhí)行很多次,手工修改lcid的值的確有點麻煩。然后我找源代碼找來找去都沒有找到csc.exe在哪個地方獲取到這個lcid值(當(dāng)然我最后找到了,下一個技巧將告訴你我是怎么找到的),然而我又不想重啟系統(tǒng)(呃……也許我就是那種寧愿花1個鐘頭去找節(jié)省花費5分鐘重啟系統(tǒng)的方法的那種人……)。

這個時候如果調(diào)試器可以自動幫你重置lcid的值該有多好?幸運的是,Visual Studio提供了方法讓你完成這樣的工作。下面是一個簡化的代碼,因為我一時半會找不到sscli了:

int lcid = System.Globalization.CultureInfo.CurrentUICulture.LCID;
Console.WriteLine("lcid = {0}", lcid);

上面的代碼在正常情況下,應(yīng)該返回當(dāng)前操作系統(tǒng)語言的lcid值,例如英文就是1033,中文的,呃……我忘記了。假設(shè)我們現(xiàn)在希望做的是,每當(dāng)lcid的值為1033的時候,就自動更正為0。我們需要:

1、Console.WriteLine這一行上設(shè)置一個條件斷點,條件斷點的設(shè)置請參看Visual Studio調(diào)試之?dāng)帱c進(jìn)階篇

2、點擊Visual Studio菜單欄里面的“工具(Tools)”“宏(Macro)”“宏資源管理器(Macro Explorer)”。然后創(chuàng)建一個新的宏:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports Microsoft.VisualBasic
Imports Microsoft.VisualBasic.ControlChars


Public
 Module Module1
    Sub ChangeExpression()
        DTE.Debugger.ExecuteStatement("lcid = 0;")
    End Sub
End Module

上面DTE.Debugger.ExecuteStatement的作用,你可以理解成在立即窗口中執(zhí)行lcid = 0;這條語句。

3、右鍵點擊剛才設(shè)置好的斷點,在菜單里面選擇“When Hit …”,這一次在“When Breakpoint is Hit”窗口中勾選“Run a macro:(執(zhí)行一個宏)”,然后在下拉框里面選擇剛才你創(chuàng)建的宏的名稱。如果你是第一次創(chuàng)建宏,名稱應(yīng)該是:Macros.MyMacros.Module1.ChangeExpression。

4、勾選“繼續(xù)執(zhí)行(Continue execution)”,因為我們并不想讓程序中斷下來。

5、點擊確定以后,執(zhí)行程序看一看結(jié)果,lcid是不是已經(jīng)被自動改成0了?

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

上一頁 下一頁 Visual Studio調(diào)試中的斷點技巧 [2]

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章
Visual Studio 簡介
Flash 遠(yuǎn)程調(diào)試器1.0Beta
用 Mozilla 調(diào)試網(wǎng)頁
作者文章 更多作者文章
倍受關(guān)注的Visual Studio插件
ASP.NET開發(fā)更加簡便
ASP.NET中創(chuàng)建GeoRSS訂閱源
詳解 VS 2010中WF 4.0的應(yīng)用
創(chuàng)意設(shè)計欣賞
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:1/21個記錄/頁 轉(zhuǎn)到 頁 共2個記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2