C#跟蹤和調(diào)試語句
C#語言還是比較常見的東西,這里我們主要介紹C#跟蹤和調(diào)試語句,包括介紹設(shè)置你的listeners、發(fā)現(xiàn)那些重大bugs等方面。
設(shè)置你的listeners
.NET Framework有一個代表接收Debug、Assert和Trace輸出的對象的Listeners集合。默認情況下,你的應(yīng)用程序有一個單一的 DefaultTraceListener。這個listener忽略Debug和Trace輸出,顯示一個Assert消息的對話框。你可以添加項目到這個集合,或從這個集合中刪除項目。已為你創(chuàng)建好的兩項是TextWriterTraceListener和 EventLogTraceListener。TextWriterTraceListener把消息寫到一個流(stream)中,EventLogTraceListener把消息寫到一個EventLog中。EventLog可以讓你把你的程序的調(diào)試和跟蹤消息寫到系統(tǒng)事件日志記錄中。
我喜歡為所有程序建一個調(diào)試日志文件:
- static void Main ()
- {
- Debug.Listeners.Add (
- New TextWriteTraceListener
- ("MyLog.log");
- // etc.
為什么用這個方法? 該技巧可以讓你控制在哪里用調(diào)試和跟蹤語句。
在你發(fā)現(xiàn)bugs時,用這些技巧
坦白地說,在開始寫代碼時,沒有人用所有這些技巧。實際上,當(dāng)我們努力想發(fā)現(xiàn)那些重大bugs的原因時我們通常添加這些語句。在你陷入那種困境時,嘗試以下方法:
1. 當(dāng)你創(chuàng)建類時,通常為每個類建一個跟蹤開關(guān)。
2. 通常為每個類建一個驗證函數(shù)。
3. 當(dāng)你要診斷錯誤的行為時,添加其它的C#跟蹤和調(diào)試語句。
確信把這些變化保留在代碼中。我發(fā)現(xiàn)的最常見的錯誤之一就是:當(dāng)程序員想找到bugs時,他們添加許多C#跟蹤和調(diào)試語句來發(fā)現(xiàn)錯誤。然后,一旦他們找到了他們查找的錯誤,他們就把這些語句刪掉。
【編輯推薦】