新聞中心
在VS調(diào)試代碼中,我們經(jīng)常會遇到這樣的問題,有時我們引用了一些其他工具包或者類庫(如Microsoft提供的Enterprise Library),而在VS調(diào)試時,我們其實是不需要跟蹤VS調(diào)試這些代碼的,因為它們都已經(jīng)證明是正確的。在Visual Studio 2003中,處理這類問題我們的方法一般是使用F10跳過它們,但一旦工程龐大的話,這樣做十分麻煩。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、成都做網(wǎng)站、常寧網(wǎng)絡(luò)推廣、微信小程序、常寧網(wǎng)絡(luò)營銷、常寧企業(yè)策劃、常寧品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供常寧建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
JMC功能由兩方面來實現(xiàn)。首先,如果一個工程是以release方式進(jìn)行編譯構(gòu)建的話(就是工程中,沒有pdb文件),VS調(diào)試器會將其認(rèn)為是非用戶代碼,那么在VS調(diào)試運行時,就根本不會進(jìn)入該工程中進(jìn)行VS調(diào)試。其次,可以使用System.Diagnostics命名空間里的 DebuggerNonUserCodeAttribute屬性,將其應(yīng)用在希望不進(jìn)行VS調(diào)試的代碼段中。
下面舉一個例子來說明。下面的代碼段中,有兩個靜態(tài)方法UserCode()和NonUserCode(),其中,在NonUserCode()中,是應(yīng)用了 DebuggerNonUserCode的屬性,這表明這段代碼將在VS調(diào)試運行時,VS調(diào)試器不會進(jìn)入其中。將斷點設(shè)置在其中的第9行,運行程序,程序會在第一個UserCode()里中斷,現(xiàn)在試著用F11繼續(xù)單步跟蹤,會發(fā)現(xiàn)系統(tǒng)在進(jìn)入usercode()方法中運行后,并沒有進(jìn)入到NonUserCode ()里運行。
- using System;
- using System.Diagnostics;
- class Program
- {
- static void Main(string[] args)
- {
- // Step into F11 from here
- UserCode();// Place break point on this line
- NonUserCode();
- UserCode();
- }
- static void UserCode()
- {
- Console.WriteLine("This is a call from user Code");
- }
- // Attribute to indicate the Debugger to jump
- // over this method
- [DebuggerNonUserCode]
- static void NonUserCode()
- {
- Console.WriteLine("This is a call fron Non User Code");
- }
- }
在Visual Studio 2005中,新引入了"Object Identity While Debugging"的概念,也就是說,系統(tǒng)給在VS調(diào)試階段的每個對象,都可以賦予一個別名,在VS調(diào)試時,直接引用該別名就可以了。
假設(shè)在VS調(diào)試的時候,需要跟蹤比如dataset或者h(yuǎn)ashtable等對象,這些對象中包含了很多其他的子對象,如果想對這些數(shù)量眾多的子對象進(jìn)行跟蹤的話,將十分麻煩。在Visual Studio 2005中,可以使用object identity(對象標(biāo)識)的方法去標(biāo)記每一個對象。#t#
比如,在一個windows應(yīng)用程序中,創(chuàng)建了一個dataset,并將其綁定到datagridview中去。如將sql server 的northwind數(shù)據(jù)庫中的orders和orderdetail表中的數(shù)據(jù)讀出填充到dataset里去,則在VS調(diào)試時,設(shè)置一個斷點放在 dataset里填充了數(shù)據(jù)之后的那行,這時,在監(jiān)視窗口中,鼠標(biāo)展開this.northwindData這個dataset,如下圖所示,找到 orders這個table,然后鼠標(biāo)右鍵,會彈出一個菜單,選擇其中的" Make Object ID"。
網(wǎng)頁題目:幾招教會您VS調(diào)試?yán)Щ?
文章地址:http://m.fisionsoft.com.cn/article/cogpdeg.html


咨詢
建站咨詢
