日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)編程開(kāi)發(fā)C#.NET → .net中的Debug與Trace的調(diào)試心得

      .net中的Debug與Trace的調(diào)試心得

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2012/5/30 18:58:15字體大。A-A+

      作者:佚名點(diǎn)擊:305次評(píng)論:1次標(biāo)簽: Trace

      Acme TraceArtv3.9.8 官方最新版
      • 類型:圖像處理大。2.5M語(yǔ)言:中文 評(píng)分:10.0
      • 標(biāo)簽:
      立即下載

      最近在讀《.NET開(kāi)發(fā)人員調(diào)試策略》,書倒是不錯(cuò),只是翻譯的比較差。不過(guò)里面介紹的一些調(diào)試的心得還不錯(cuò),有些收獲。

        下面我就總結(jié)下本書中關(guān)于Debug和Trace的一些應(yīng)用,算作一種讀書筆記。

        粗略概括下關(guān)于修改BUG的幾種方法:

      通過(guò)調(diào)試器調(diào)試

          顧名思義就是跟蹤源代碼進(jìn)行調(diào)試,微軟還提供了遠(yuǎn)程調(diào)試的功能。通過(guò)源代碼的方式調(diào)試,我們一般會(huì)采用以下的幾種方法:

      使用Exception

      使用MessageBox。

      使用#if Debug .. #endif

      使用斷言調(diào)試:其中有Debug.Assert和Trace.Assert兩種,Debug只在Debug模式下有效,Trace則都有效。斷言模式還有個(gè)優(yōu)點(diǎn),可以直接點(diǎn)擊按鈕重試,選擇調(diào)試器進(jìn)行調(diào)試。

      當(dāng)然還有通過(guò)堆棧跟蹤或者其他的一些特殊手段等等。

         .net所提供的斷言調(diào)試相當(dāng)強(qiáng)大,建議大家采用該方法。具體應(yīng)用請(qǐng)自行尋找資料。 

         msdn:

            Debug.Assert 方法

            Trace.Assert 方法

      通過(guò)日志調(diào)試

         想必大家肯定遇到過(guò),有些BUG在客戶那邊會(huì)出現(xiàn),但是本機(jī)就是模擬不出來(lái)。而客戶要嘛遠(yuǎn)隔萬(wàn)里,要嘛就是不允許安裝遠(yuǎn)程調(diào)試。

         在這種情況下,就可以通過(guò)日志調(diào)試,也就是將一些重要的信息寫到文本中,當(dāng)出現(xiàn)問(wèn)題或者BUG可以通過(guò)查看日志文件來(lái)查找原因。

         記錄日志文件,就是寫文件的操作,可以有很多種方法。

         此處介紹下通過(guò).net提供的偵聽(tīng)器與開(kāi)關(guān)記錄日志。   

         1.直接創(chuàng)建

      1         static void Main(string[] args)
      2         {
      3             bool someBool = true;
      4             Trace.Listeners.Add(new TextWriterTraceListener(@"C:\MyListener.log"));
      5             Trace.AutoFlush = true;//每次寫入日志后是否都將其保存到磁盤中
      6
      7             Trace.WriteLine(DateTime.Now.ToString() + "--Enter function LogTest");
      8             Trace.Indent(); //縮進(jìn)+1
      9             Trace.WriteLine("This is indented once");
      10             Trace.Indent();
      11             Trace.WriteLineIf(someBool, "Only written if someBool is true");
      12             Trace.Unindent(); //縮進(jìn)-1
      13             Trace.Unindent();
      14             Trace.WriteLine("Leave function LogTest");
      15         }

      日志內(nèi)容:

      2012-05-30 14:11:41--Enter function LogTest
          This is indented once
              Only written if someBool is true
      Leave function LogTest

         2.通過(guò)配置文件創(chuàng)建

      App.config

      1         static void Main(string[] args)
      2         {
      3             TraceSwitch ts = new TraceSwitch("MySwitch", "descrption");//開(kāi)關(guān)
      4             Trace.WriteLine(DateTime.Now.ToString() + "--Enter function LogTest");
      5             Trace.Indent(); //縮進(jìn)+1
      6             Trace.WriteLine("This is indented once");
      7             Trace.Indent();
      8             Trace.WriteLineIf(ts.TraceInfo, "MySwitch TraceInfo is true!");
      9             Trace.Unindent(); //縮進(jìn)-1
      10             Trace.Unindent();
      11             Trace.WriteLine("Leave function LogTest");
      12         }

      日志內(nèi)容:

      2012-05-30 14:19:43--Enter function LogTest
        This is indented once
          MySwitch TraceInfo is true!
      Leave function LogTest

         3.windows事件日志

         通過(guò)Trace或者Debug中的EventLogTraceListener即可寫入事件日志。

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過(guò)難過(guò)
        • 5 囧
        • 3 圍觀圍觀
        • 2 無(wú)聊無(wú)聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(1)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)