精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解Visual Studio調(diào)試中斷點幾個的小技巧

開發(fā) 后端
在這里我們將討論Visual Studio調(diào)試中斷點幾個的小技巧,希望對大家做好調(diào)試工作有所幫助。

斷點對于Visual Studio調(diào)試過程是十分重要的,斷點的設(shè)置也是為了更好的進(jìn)行調(diào)試。本文將介紹Visual Studio調(diào)試中斷點幾個的小技巧。

一般來說,函數(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類似。

斷點編程

有的時候你可能會碰到這種情況,觸發(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值。

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

  1. int lcid = System.Globalization.CultureInfo.CurrentUICulture.LCID;  
  2. 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è)置條件斷點  
圖1 設(shè)置條件斷點

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

  1. Imports System  
  2. Imports EnvDTE  
  3. Imports EnvDTE80  
  4. Imports EnvDTE90  
  5. Imports System.Diagnostics  
  6. Imports Microsoft.VisualBasic  
  7. Imports Microsoft.VisualBasic.ControlChars  
  8. Public Module Module1  
  9.     Sub ChangeExpression()  
  10.         DTE.Debugger.ExecuteStatement("lcid = 0;")  
  11.     End Sub  
  12. End Module 

上面DTE.Debugger.ExecuteStatement的作用,你可以理解成在立即窗口中執(zhí)行l(wèi)cid = 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了?

執(zhí)行結(jié)果
圖2 執(zhí)行結(jié)果

數(shù)據(jù)斷點

注意,這個技巧僅對C++程序調(diào)試有效(或者說native程序),而且你只能在中斷模式下才能設(shè)置數(shù)據(jù)斷點,另外你還只能在本機(jī)設(shè)置數(shù)據(jù)斷點。

上一節(jié)的例子里,我們提到了,有的時候一個全局變量被修改了以后,你可能都找不到它是什么時候被修改的,于是夜已深,人已寐,你還在辛苦地調(diào)試到底是哪個鬼地方把這個變量的值修改了。F11, F10,……,SHIFT + F11,……,F(xiàn)5,靠,調(diào)過了,重來,F(xiàn)11,F(xiàn)10,……

這種情況下,數(shù)據(jù)斷點就很有用了,Visual Studio允許你在變量被修改的時候,中斷程序的執(zhí)行,是不是很酷?

默認(rèn)情況下,你是找不到數(shù)據(jù)斷點這個菜單的,需要執(zhí)行下面的步驟把它拉出來:

1 打開你要調(diào)試的項目。

2 點擊Visual Studio菜單欄里面的“工具(Tools)”—“自定義(Customize…)”。然后在“自定義(Customize…)”窗口中選擇“命令(Commands)”頁簽里面的“種類(Categories)”列表框里的“調(diào)試(Debug)”,找到“新數(shù)據(jù)斷點(New Data Breakpoint)”,將它拖到菜單欄里面相應(yīng)的位置。

然后打開或者創(chuàng)建一個C++項目,我們以下面的源代碼為例子:

  1. #include "stdafx.h"  
  2. int g_Variable = 0;  
  3. int _tmain(int argc, _TCHAR* argv[])  
  4. {  
  5.        printf("Before modifying data breakpoints"n");  
  6.        g_Variable = 1;  
  7.        printf("After modifying data breakpoints"n");  
  8.        return 0;  
我們現(xiàn)在要Visual Studio在更改g_Variable的時候中斷程序的執(zhí)行。

1 單擊F11,這樣程序就會在_tmain函數(shù)里面中斷了,我們也就有機(jī)會設(shè)置數(shù)據(jù)斷點了。

2 點擊菜單里面的“新數(shù)據(jù)斷點(New Data Breakpoint)”。注意,數(shù)據(jù)斷點是通過監(jiān)視內(nèi)存地址某一段區(qū)域更改來實現(xiàn)的,因此你必須提供一個內(nèi)存地址(或者說就是指針吧),這里g_Variable是一個整形變量,因此你需要使用“&g_Variable”的形式來創(chuàng)建一個數(shù)據(jù)斷點,因為整形的 大小是4個字節(jié),因此數(shù)據(jù)斷點監(jiān)視的區(qū)域是4個字節(jié)。 

斷點監(jiān)視區(qū)域
圖3 斷點監(jiān)視區(qū)域
 

3 繼續(xù)程序的執(zhí)行,這時會彈出一個對話框,告訴你有一個內(nèi)存地址的內(nèi)容發(fā)生了變化(說明我們的數(shù)據(jù)斷點生效了),這時代碼行指向的是數(shù)據(jù)被修改的下一行代碼。

運行提示
圖4 運行提示

為什么數(shù)據(jù)斷點只能在C++/C程序中才能設(shè)置?是因為托管代碼有垃圾回收。而數(shù)據(jù)斷點的執(zhí)行原理應(yīng)該是Windows內(nèi)存管理里面的Guard Pages概念和VirtualProtectEx函數(shù)的實現(xiàn)。這個概念可以自己去查MSDN的內(nèi)存管理方面的文檔。

【編輯推薦】

  1. 淺析Visual Studio調(diào)試中斷點的設(shè)置
  2. 圖解VS 2010與.NET 4.0多顯示器支持
  3. VS 2010和.NET 4的多定向支持
  4. 圖解VS 2010和.NET 4起始項目模板
  5. VS 2010和.NET 4第一步:Web.config文件
責(zé)任編輯:彭凡 來源: IT168
相關(guān)推薦

2009-09-27 08:57:29

Visual Stud

2020-07-09 15:10:20

開發(fā)技能代碼

2009-12-16 15:44:20

Visual Stud

2021-08-26 05:04:53

JavaScript調(diào)試技巧

2009-10-14 09:08:23

Visual Stud

2009-11-30 15:21:38

Visual Stud

2011-04-02 08:39:27

Visual Stud

2017-04-18 09:27:14

Visual StudNode.js調(diào)試

2010-12-14 09:15:50

Visual Stud

2009-09-04 09:39:15

Visual Stud

2010-04-01 15:10:06

Visual Stud

2009-04-23 14:05:28

Visual Stud歷史調(diào)試功能

2013-08-01 15:12:03

Visual Stud

2015-02-04 10:32:57

Objective-CSwift

2009-07-31 16:23:00

linux cd命令cd命令技巧

2009-11-23 14:32:55

Visual Stud

2009-12-04 10:35:56

Visual Stud

2009-12-03 15:58:33

Visual Stud

2017-03-02 10:30:57

AndroidAndroid Stu技巧

2010-09-01 08:35:07

Visual Stud
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲av综合色区无码一区爱av| 亚洲天堂小视频| 国产美女视频一区二区三区 | 蜜桃成人精品| 国产亚洲精品超碰| 91色精品视频在线| 妺妺窝人体色www聚色窝仙踪| 国语一区二区三区| 欧美综合视频在线观看| 777久久精品一区二区三区无码| 免费a视频在线观看| 免费高清视频精品| 韩剧1988在线观看免费完整版| 免费看污黄网站在线观看| 亚洲精品乱码日韩| 欧美性xxxxx极品娇小| 国产卡一卡二在线| p色视频免费在线观看| 丁香一区二区三区| 国产欧美最新羞羞视频在线观看| 日本高清www免费视频| 香蕉视频官网在线观看日本一区二区| 亚洲国产另类久久精品| 午夜精品免费看| 波多野结衣亚洲| 亚洲国产欧美日韩另类综合 | av网站在线免费观看| 成人激情动漫在线观看| 91麻豆桃色免费看| 岛国av一区二区在线在线观看| 亚洲第一精品福利| 在线看免费毛片| 超级碰碰久久| 天天综合网 天天综合色| av磁力番号网| 91美女在线观看| 中文字幕视频在线免费欧美日韩综合在线看| www.国产福利| 91大神在线观看线路一区| 亚洲成av人片在线| 91精品国产毛片武则天| 色视频在线免费观看| 久久综合久久综合久久综合| 丁香婷婷综合激情五月色| 欧美三区在线观看| 国产综合av在线| jizz性欧美10| 亚洲一区二区偷拍精品| 深田咏美在线x99av| 精品久久在线观看| 久久国产婷婷国产香蕉| 国产999视频| 久久夜靖品2区| 韩国久久久久| 日韩精品一区二区亚洲av观看| 久久久久久久久久久久久久久久久久久久| 欧美午夜精品久久久| 国产精品亚洲αv天堂无码| 91桃色在线| 亚洲国产成人av网| 霍思燕三级露全乳照| 大香伊人中文字幕精品| www激情五月| av一区在线观看| 国产亚洲精品aa午夜观看| 欧美日韩国产综合在线| 欧美午夜黄色| 久久精品夜夜夜夜久久| 在线天堂资源| 亚洲伦理一区| 欧美激情精品久久久久久蜜臀| 精品自拍偷拍视频| 欧美精品三区| 久久青草福利网站| 国产精品100| 在线视频三区| 国产高清精品网站| 99爱精品视频| 亚洲欧美另类视频| 99久久久国产精品| 日韩高清三级| 欧美三级电影一区二区三区| 国产一区深夜福利| 国产精品沙发午睡系列| 黄色污网站在线观看| 精品久久久免费| av免费播放网址| 自拍偷自拍亚洲精品被多人伦好爽| 欧美色xxxx| 久久99爱视频| 视频精品国内| 亚洲精品在线看| www.xx日本| 在线成人h网| 国产精品久久久久久久久借妻| 中文字幕人妻一区二区三区视频 | 麻豆国产精品va在线观看不卡 | 成人久久视频在线观看| 国产精品wwww| 国产老女人乱淫免费| 成人一区在线观看| 日韩电影在线播放| 日本在线视频中文有码| 色婷婷久久综合| 亚洲视频在线不卡| 国产成人精品999在线观看| 久久精品国产99国产精品澳门| 国产亚洲欧美精品久久久久久| 久久激情久久| www.久久草| 91se在线| 欧美性猛交xxxx久久久| 一区二区三区免费播放| 欧美大片网址| 久久综合伊人77777尤物| 免费av网站在线| 国产精品主播直播| 国产91精品露脸国语对白| 国产精品国语对白| 午夜免费福利视频| 久久精品亚洲一区二区三区浴池 | 亚洲国产精品毛片av不卡在线| 日本黄色成人| 一本久久综合亚洲鲁鲁| 国产在线一区视频| 国产一区二三区| 日韩免费电影一区二区| 日韩电影免费看| 日韩免费视频线观看| 亚洲国产精品一区二区久久 | 天天操天天爱天天爽| 99国产精品久久一区二区三区| 亚洲少妇激情视频| 日本免费观看视| 精品一区二区三区免费毛片爱 | 亚洲欧美日韩在线不卡| 欧美 亚洲 视频| 国产精品一区二区三区四区在线观看| 亚洲视频综合网| 一级片中文字幕| 91一区二区三区在线观看| 老子影院午夜伦不卡大全| 99re8精品视频在线观看| 久久久久久亚洲精品杨幂换脸| 国产精品海角社区在线观看| 日韩欧美亚洲系列| 欧美日韩国产在线| 国产视频久久久久久| 精品成人一区| 国产美女在线精品免费观看| 国产一线二线在线观看 | 欧美中文在线观看| 成人免费观看在线视频| 亚洲永久精品国产| 中文字幕亚洲日本| 狠狠色狠狠色综合日日tαg| 99re在线视频上| 黑森林国产精品av| 亚洲欧美日韩成人| 亚洲视屏在线观看| 综合久久国产九一剧情麻豆| 中文字幕国内自拍| 亚洲精品在线观看91| 99久久精品免费看国产一区二区三区| 男女视频在线| 亚洲精品美女在线观看播放| 中文字幕黄色片| 国产精品美女久久久久aⅴ| 9l视频白拍9色9l视频| 亚欧在线观看视频| 亚洲日本成人在线观看| 麻豆传媒在线看| 影音先锋中文字幕一区| 久久久久网址| ww久久综合久中文字幕| 美女精品视频一区| 深爱五月激情五月| 91久久香蕉国产日韩欧美9色| 一区二区三区在线观看免费视频| 久久99国内精品| 青青青青在线视频| 久久99青青| 国产欧美最新羞羞视频在线观看| 丝袜美女在线观看| 亚洲男人天天操| 国产又大又黑又粗| 亚洲国产一区二区三区| 新91视频在线观看| 国产一区二区三区日韩| 国产精品久久久久9999爆乳| 国产91精品对白在线播放| 国产男女猛烈无遮挡91| 超碰在线中文字幕| 国产亚洲人成网站在线观看| 国产成人毛毛毛片| 精品久久久一区二区| 9.1片黄在线观看| 国产日产一区二区三区| 91精品国产综合久久香蕉麻豆 | 国产精品久久久av| 亚洲第一图区| 国产一区二区三区丝袜| 亚洲av无码乱码国产精品久久| 欧美性xxxx极品高清hd直播| 国产一区二区播放| 久久九九久久九九| 日本成人在线免费| 青椒成人免费视频| 日韩免费一级视频| 欧美freesex交免费视频| 欧美极品日韩| 国产精品美女在线观看直播| 成人看片人aa| 免费污视频在线一区| 午夜精品美女自拍福到在线| 黄网站app在线观看| 亚洲欧美制服另类日韩| 蜜桃91麻豆精品一二三区| 欧美日韩免费不卡视频一区二区三区| 中文字幕一区二区三区手机版| 中文字幕一区二区三中文字幕| 亚洲最大成人网站| 成人动漫在线一区| 日韩中文字在线| 999国产精品视频免费| 91国偷自产一区二区三区观看| 久久免费视频精品| 亚洲图片激情小说| 亚洲激情图片网| 久久久国产一区二区三区四区小说| 少妇伦子伦精品无吗| 国产揄拍国内精品对白| 邪恶网站在线观看| 日日噜噜夜夜狠狠视频欧美人| 日韩少妇内射免费播放| 在线播放一区| 精品无码一区二区三区爱欲| 欧美久久久久| 免费看污污视频| 伊人久久大香线蕉精品组织观看| 亚洲ai欧洲av| 日韩精品2区| 色综合久久88色综合天天提莫| 亚洲三级网页| 欧美亚洲另类久久综合| 欧美热在线视频精品999| 久久偷窥视频| 免费精品国产| 日韩成人av网站| 欧美亚洲在线日韩| 一区二区日本伦理| 亚洲国产一成人久久精品| 99精品一区二区三区的区别| 1024精品久久久久久久久| xxxxx日韩| 精品奇米国产一区二区三区| www.蜜臀av| 日韩欧美高清在线| 亚洲av无码一区二区乱子伦| 精品日韩欧美在线| 天天干,夜夜操| 亚洲精品视频在线播放| 蜜桃视频在线入口www| 亚洲视频在线免费观看| 日本在线播放| 欧美猛交免费看| 黄色在线看片| 欧美在线视频一区| 精品69视频一区二区三区| 成人福利免费观看| 91综合久久爱com| 久久伊人一区二区| 999视频精品| 男女日批视频在线观看| 奶水喷射视频一区| 色婷婷成人在线| 国产精品综合久久| 欧美大片免费播放器| 国产亚洲精品超碰| 欧美国产在线看| 欧美午夜久久久| 一级黄色大片免费| 亚洲成人黄色网址| 国产黄在线看| 美日韩精品免费观看视频| 熟妇高潮一区二区| 成人短视频下载| 久久久久亚洲AV成人无在| 亚洲精品一二三| 国产一级片毛片| 5月丁香婷婷综合| 五十路在线视频| 日韩在线视频免费观看高清中文| 日韩伦理电影网站| 国产成人精品亚洲精品| 秋霞一区二区| 日韩av不卡在线播放| 黄色一级大片在线免费看产| 色阁综合伊人av| 爱情岛亚洲播放路线| 国产精品入口免费视频一| 99re91这里只有精品| 亚洲免费在线精品一区| 亚洲黄色影院| 中文字幕网av| wwww国产精品欧美| 日本老熟俱乐部h0930| 色哟哟一区二区三区| 午夜精品一二三区| 日韩资源在线观看| 高清av不卡| 国产精品成人一区二区三区 | 亚洲经典中文字幕| 高清免费电影在线观看| 国产精品高清免费在线观看| 久久a爱视频| 久久久天堂国产精品| 毛片av一区二区| 在线免费观看日韩av| 亚洲成a人片在线不卡一二三区| 一级全黄少妇性色生活片| 亚洲人成电影在线| 黄色漫画在线免费看| 国产精品av一区| 欧美深夜福利| 丰满人妻一区二区三区53视频| 国产精品你懂的| 欧美brazzers| 亚洲免费人成在线视频观看| av福利导福航大全在线| av资源一区二区| 欧美精品入口| 国产男女无遮挡猛进猛出| 一区在线观看视频| 亚洲影视一区二区| 中文字幕亚洲欧美日韩高清 | 91精品一区二区| 日韩欧美字幕| 国产野外作爱视频播放| 欧美国产丝袜视频| 波多野结衣黄色| 亚洲人成自拍网站| 人人视频精品| 欧美亚洲国产免费| 日本aⅴ免费视频一区二区三区 | 国产精品久久久久影院色老大| 日韩电影在线观看一区二区| 亚洲精选在线观看| 国产成人精品亚洲日本在线观看| 欧美精品亚洲| 丝袜美腿高跟呻吟高潮一区| 在线观看日本中文字幕| 一道本成人在线| 国产高清一区在线观看| 国产精品久久久久国产a级| 欧美日韩激情| 日本不卡一区在线| 亚洲特级片在线| 精品国产黄色片| 久久久天堂国产精品女人| 久久大胆人体视频| 精品一区二区中文字幕| 国产亚洲欧美一区在线观看| 日本视频www色| www.日本久久久久com.| 日本一区二区三区视频在线看 | 美女91在线| 精品毛片久久久久久| 六月婷婷一区| 久久一级免费视频| 欧美一卡2卡三卡4卡5免费| 超碰97免费在线| 欧美日韩一区在线播放| 麻豆国产一区二区| 麻豆亚洲av成人无码久久精品| 亚洲国产福利在线| 亚洲一区二区三区四区| 影音先锋欧美资源| 成人免费视频app| 欧美三级韩国三级日本三斤在线观看| 亚洲图片制服诱惑| 精品中文字幕一区二区三区| 人妻少妇精品久久| 欧美激情一区在线| 亚洲第一第二区| 国产成人精品免高潮费视频| 小小影院久久| 成人网站免费观看| 欧美日韩精品电影| gogo高清在线播放免费| 视频一区视频二区视频三区高| 国产一区999| 国产嫩bbwbbw高潮| 久久综合亚洲社区| 国产欧美日韩在线一区二区 | 真实的国产乱xxxx在线91| 九九热视频这里只有精品| 校园春色另类视频| 亚洲国产欧美91| 在线亚洲欧美专区二区|