亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

Dot Net的調試 - 1

2024-07-21 02:19:52
字體:
來源:轉載
供稿:網友
debug是整個軟件開發過程中最痛苦的部分之一。我們不想說發現一個小bug是多么的困難-你可能已經都知道。軟件中bug的數量是隨著軟件的復雜程度和經常沒有及時修正bug而增長的。這些bug和軟件的負責程度互相影響,使工程變得更加復雜。所以我們不斷的監控和修改bug。

最好的辦法是執行單元測試的時候來修正bug,當軟件出現問題的時候,軟件不會告訴我們哪里出現錯誤,為什么出現錯誤,我們的任務就是跟蹤進程去解決他們。

這篇文章我們就是想告訴你怎樣利用dotnet framework來調試和跟蹤讓這個處理過程變得簡單。我們將簡要的告訴你怎么樣有效的使用他們,并用結合例子說明。

跟蹤

在這篇文章中首先要討論的調試的策略是跟蹤。跟蹤是很強大的技術,因為他允許你看到應用程序的整個在運行期的整個行為,分析他是最有效的,盡管他不能提供需要的信息。

dotnet在system.diagnostics名字空間中提供了跟蹤的功能,正確的說是trace class

trace是個靜態類(這意味著所有的成員是靜態的,你不需要初始化他來獲得它的功能)

.產生一個斷言(有條件或沒有)

.根據提供的條件輸出跟蹤信息

.格式化跟蹤輸出信息

讓我們從簡要的成員方法開始研究:

public static void assert(bool)

public static void assert(bool,string)

public static void assert(bool,string,string)



assert方法顯示一個失敗信息(應用程序失敗的時候顯示信息,允許用戶中斷執行,忽略錯誤或者重新運行引起錯誤的代碼),如果條件是false,兩個重載函數允許顯示指定的自定義一個或兩個跟著的信息。(這些信息通過string參數設置,這么做允許開發者顯示額外的斷言失敗的信息)

//asertion demo

//

//purpose: to demonstrate results of different assert method calls

using system;

using system.diagnostics

namespace assertion

{

class application

{

[stathread]

static void main(string[] args)

{

//simple assertion. no additional message

trace.assert(false);

}

}

}

程序將顯示下面的消息對話框




正如你看到的,僅僅是顯示異常信息。沒有顯示任何上下文信息,所以我們不能看到失敗的原因。下面,應用程序調用assert方法用它的一個屬性:

//asertion demo

//

//purpose: to demonstrate results of different assert method calls

using system;

using system.diagnostics

namespace assertion

{

class application

{

[stathread]

static void main(string[] args)

{

//simple assertion. no additional message

trace.assert(false,”simple assertion message”);

}

}

}

這個程序顯示了一個更多信息的對話框??梢钥吹轿覀兡芴峁┑年P于失敗原因的信息。


調用有兩個信息的assert方法,組成更加詳細的斷言:

//asertion demo

//

//purpose: to demonstrate results of different assert method calls

using system;

using system.diagnostics

namespace assertion

{

class application

{

[stathread]

static void main(string[] args)

{

//simple assertion. no additional message

trace.assert(false,”simple assertion message”,”this message just an example.in real application you can provite detailed information here’);

}

}

}

你現在看到更加詳細的信息:


事實上,當檢查重要條件,比如數據正確性等情況的時候才用這種方法。下邊是他最常用的例子:public void storeobject(persistentobject obj)

{

trace.assert(obj != null, "cannot store null object");

}

這個方法檢查object對象不是null的時候被存儲。當程序失敗的時候是產生異常的最好時間,但這不是必要條件。例如,如果這個方法保存了一些重要的程序數據,斷言是完美的選擇。

備注:調試跟蹤是有用的,如果最終發行版本中包含了斷言信息對用戶來說是無法忍受的。下面的竅門可以幫助你控制跟蹤開關。



如果你手工編譯工程(比如命令行編譯),缺省顯示跟蹤信息。如果在c#中用跟蹤功能,當你編譯代碼的時候,要加/d:trace標志來編譯命令行,或者你可以簡單的加入#define trace到文件最頂端。

比如,下面的小程序:

using system;

using system.diagnostics;

namespace traceshow

{

class calss1

{

///<summary>

///the main entry point for the application

///</summary>

[stathread]

static void main(string[] args)

{

trace.listeners.add(new textwritertracelister(console.out));

trace.write(“hey,this is a trace message/n”, “simple message”);

}

}

}

如果在命令行編譯,你將看不到任何信息,除非你加上/d:trace或者加入#define trace到文件頂部。

當你在visual c#中編譯程序這種情形將改變,visual c#中默認是可用的,結論是你將看到跟蹤信息。關閉調試功能,瀏覽工程屬性(可以在解決方案瀏覽器重或者view->property菜單項。在這個屬性頁面對話框中,發現條件編譯常量(在configuration properties文件夾下,build pane中這個選項是鎖定狀態),去掉trace選項):


public static void fail(string)

public static void fail(string, string)

fail方法產生一個無條件斷言。它的有些行為有點像assert方法,但是他不需要任何處理條件。

帶有簡單條件的失敗條件不能被選中那么用這個方法。下邊的例子是這種異常的處理情形:

try

{

throw new exception(“sample exception”);

}

catch(exception ex)

{

trace.fail(“exception caught”, ex.message);

}



pubic static void write(object)

public static void write(string)

public static void write(object, string)

public static void write(string,string)



trace類可以在不產生任何條件的情況下寫入跟蹤信息。比如信息輸出到作為跟蹤信息的接收者的設備中。用write方法執行輸出。

write方法可以建立作為對象或者字符串的描繪信息。以前的案例中,object.tostring被呼叫執行。有其他三個方法可以執行類似的行為:writeline輸出行,writeif-條件信息,writelineif輸出一行條件信息。

write方法的第二個參數指定將要寫入信息前的分類(比如 一個字符串)

輸出被注冊為偵聽器。偵聽器是可以輸出跟蹤信息到一些設備的對象。注意assert和fail方法經常輸出錯誤信息到窗體或者控制臺,不管那個偵聽器被選中。這類對象必須繼承tracelistener類,他有以下重要的方法:

public virtual void fail(string)

public virtual void fail(string,string)



public virtual void flush(string)



public virtual void write(object)

public abstract void write(string)

public virtual void write(object,string)

public virtual void write(string,string)



public virtual void writeline(object)

public virtual void writeline(string)

public virtual void writeline(object,string)

public virtual void writeline(string,string)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩第一视频| 精品无人区乱码1区2区3区在线| 国色天香2019中文字幕在线观看| 亚洲欧洲自拍偷拍| 中文字幕日韩专区| 欧美xxxwww| 亚洲福利在线视频| 日韩精品免费在线视频观看| 亚洲欧美色图片| 日韩毛片中文字幕| 国产69精品久久久| 日韩高清欧美高清| 久久中文字幕视频| 久久精品国产91精品亚洲| 欧美色图在线视频| 性欧美长视频免费观看不卡| 日本免费一区二区三区视频观看| 日韩理论片久久| 国产女人精品视频| 日韩欧美精品在线观看| 成人av在线亚洲| 亚洲美女久久久| 懂色av中文一区二区三区天美| 亚洲精品456在线播放狼人| 精品亚洲男同gayvideo网站| 久久精品欧美视频| 国产成人拍精品视频午夜网站| 国产亚洲精品一区二555| 日韩hd视频在线观看| 午夜精品视频在线| 欧美日韩亚洲国产一区| 欧美激情视频网站| 91精品国产综合久久男男| 精品国产欧美一区二区三区成人| 5566成人精品视频免费| 欧美日韩裸体免费视频| 欧美黄色性视频| 性欧美xxxx交| 精品亚洲永久免费精品| 中文字幕欧美日韩在线| 国产视频在线观看一区二区| 久久精品国产久精国产思思| 亚洲第一视频在线观看| 久久影院在线观看| 91精品国产综合久久香蕉| 伦理中文字幕亚洲| 国产69精品久久久久9999| 日本精品一区二区三区在线播放视频| 欧洲一区二区视频| 欧美大片免费观看在线观看网站推荐| 亚洲乱码国产乱码精品精天堂| 午夜剧场成人观在线视频免费观看| 亚洲一区二区三区成人在线视频精品| 欧美中文在线视频| 欧美一区二区大胆人体摄影专业网站| 国产精品情侣自拍| 国产精品三级美女白浆呻吟| 日韩亚洲第一页| 精品国产乱码久久久久久虫虫漫画| 日本久久久久久久| 国产精品久久久久久久久久久久久久| 亚洲国产精品成人精品| 欧美电影免费播放| 亚洲性视频网站| 国产精品免费网站| 97精品久久久| 91精品国产乱码久久久久久蜜臀| 人人爽久久涩噜噜噜网站| 亚洲第一男人av| 亚洲欧美国产视频| 国产精品视频久久久| 国产视频在线一区二区| 亚洲天堂一区二区三区| 中文字幕日韩有码| 欧美床上激情在线观看| 深夜福利国产精品| 热久久免费国产视频| 日韩av免费在线观看| 日韩美女视频在线观看| 亚洲缚视频在线观看| 国产日韩在线免费| 亚洲va电影大全| 国内揄拍国内精品| 国内精品久久久久| 亚洲精选在线观看| 久久国内精品一国内精品| www国产精品com| 久久九九有精品国产23| 欧美乱人伦中文字幕在线| 国产精品成人久久久久| 色噜噜狠狠狠综合曰曰曰88av| 九九久久久久久久久激情| 久久网福利资源网站| 日韩av手机在线| 国产日韩换脸av一区在线观看| 日韩高清a**址| 国产一区二区三区视频| 欧美成人精品在线观看| 亚洲男人天堂网站| 色老头一区二区三区在线观看| 92国产精品视频| 欧美日韩在线免费观看| 亚洲色图五月天| 欧美在线视频在线播放完整版免费观看| 91av视频在线播放| 国产91精品久久久久| 中文字幕欧美精品在线| 在线看日韩av| 国产视频精品免费播放| 日韩av中文字幕在线| 中文字幕九色91在线| 日韩亚洲精品电影| 91日韩在线视频| 欧美精品少妇videofree| www.亚洲免费视频| 欧美电影电视剧在线观看| 欧美午夜丰满在线18影院| 在线视频欧美日韩精品| 国产日韩综合一区二区性色av| 2019中文字幕免费视频| 日韩av在线影视| 国产精品久久久久久久久久久久久久| 青草成人免费视频| 国产综合在线观看视频| 日韩av手机在线观看| 亚洲区一区二区| 日韩在线中文字| 国产这里只有精品| 韩国福利视频一区| 中文字幕日韩在线视频| 日韩精品黄色网| 欧美精品18videos性欧| 精品小视频在线| 26uuu亚洲伊人春色| 中文.日本.精品| 91情侣偷在线精品国产| 国产欧美日韩综合精品| 日韩精品中文字幕视频在线| 亚洲精品日韩激情在线电影| 久久久久久国产| 亚洲香蕉av在线一区二区三区| 日韩欧美中文第一页| 日本亚洲精品在线观看| 国产精品欧美一区二区三区奶水| 欧美日韩国产激情| 在线视频精品一| 中文字幕日韩欧美在线| 色偷偷av亚洲男人的天堂| 国产欧美韩国高清| 成人激情视频在线观看| 亚洲老头老太hd| 亚洲欧美日韩视频一区| 国产精品香蕉国产| 精品久久久视频| 2019国产精品自在线拍国产不卡| 一区二区三区久久精品| 97在线视频观看| 岛国视频午夜一区免费在线观看| 国产精品嫩草影院久久久| 欧美大片网站在线观看| 亚洲最大成人网色| 欧美激情亚洲国产| 日韩经典第一页| 亚洲视频在线免费看|