posts - 21,  comments - 0,  trackbacks - 0
          如果你對你的CodeLine還不是非常熟悉,但眼前有一個Urgent的Bug需要你Fix,你可以借助下面的一些小技巧:
          1 根據StackTrace,如果有Exception StackTrace錯誤最好定位。有時就算是修復一個看似不相關的Exception,也可能解決你的bug
          2 Log. Log中往往有大量的信息,如程序流程,Warning, Error之類的信息。如果遇到多線程問題,尤其要注意Log的線程信息,比如這一條log是線程A打印的,另一條是線程B打印的,這樣對理解線程調度的過程很有幫助,也可以排除大量無關的信息(不是你出錯的線程打印出來的,可以不重點考慮)。Thread.currentThread().getName(),? Thread.currentThread().setName() 可以幫助你編程時得到Thread的名稱。
          3 利用Winword定位文件寫操作的代碼。有時程序會自動生成許多文件,如果你懷疑某個文件生成有誤,可以用Word將其打開,然后再運行你的程序,這時寫操作會失敗,你多半可以看到寫操作的StackTrace,也就可以定為這個文件是從哪里來的了。
          4 注意查看代碼修改歷史。很多Bug是別人改出來的(Regression). 如果某功能上一個版本上OK,這一個版本出問題了。你就可以查查相關代碼有誰修改過,往往就能找到問題的原因。Winmerge是一個比較好的代碼比對和merge的工具。
          5 代碼搜索。你可以利用一些出錯信息,查找代碼來定位錯誤的位置。比如如果你發現日志中有 abc, 你可以搜索一些可能的編程習慣 += "abc" ,? = "abc" ...
          6 如果懷疑某個class的classLoader有問題,可以在調試環境中Watch??? ABC.class.getProtectionDomain().getCodeSource() 查看它的class path, 用ABC.class.getClassLoader() 查看它的class loader
          7 如果調試web相關的問題,可以用Firefox的Live HTTP headers來查看http協議的header.
          8 如果懷疑傳輸格式(如Webservice,IIOP)可以用TCPMon 來攔截TCP傳輸,察看服務器和客戶端之間的交互過程。https://tcpmon.dev.java.net/

          最后一點要記住:
          一個比較成熟的產品,它的bug往往并不大,都是些微小的地方,如果你的只修了某個地方就把問題解決了,那很好。如果你改了一大堆java文件,才讓產品Work,就要好好想想是不是你沒有找到問題的根本,更重要的是,千萬別引進新的Bug!改不出Bug不是你的錯,改出新的Bug就是你的錯了。
          posted on 2007-02-08 09:20 自強不息的豬 閱讀(507) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          常用鏈接

          留言簿(3)

          隨筆檔案(21)

          文章分類(2)

          文章檔案(8)

          links

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 15303
          • 排名 - 1991

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清原| 平乐县| 铜陵市| 五寨县| 龙井市| 辽源市| 淅川县| 旬阳县| 宁津县| 宁明县| 怀仁县| 绩溪县| 和田市| 柳河县| 正宁县| 海晏县| 淮安市| 贵州省| 柯坪县| 九龙县| 华坪县| 玛沁县| 什邡市| 安丘市| 锦州市| 修武县| 惠安县| 吉首市| 德格县| 阜宁县| 韩城市| 桐城市| 安多县| 栖霞市| 巴林右旗| 英山县| 蕲春县| 武胜县| 永靖县| 丰台区| 昌乐县|