athrunwang

          紀元
          數據加載中……
          Eclipse調試Java的10個技巧

          在看這篇文章前,我推薦你看一下Eclipse 快捷鍵手冊,我的eclipse版本是4.2 Juno。

          先提三點

          • 不要使用System.out.println作為調試工具
          • 啟用所有組件的詳細的日志記錄級別
          • 使用一個日志分析器來閱讀日志
          1、條件斷點

          想象一下我們平時如何添加斷點,通常的做法是雙擊行號的左邊。在debug視圖中,BreakPoint View將所有斷點都列出來,但是我們可以添加一個boolean類型的條件來決定斷點是否被跳過。如果條件為真,在斷點處程序將停止,否則斷點被跳過,程序繼續執行。

           

          2、異常斷點

          在斷點view中有一個看起來像J!的按鈕,我們可以使用它添加一個基于異常的斷點,例如我們希望當NullPointerException拋出的時候程序暫停,我們可以這樣:

           

          3、觀察點

          這個特性我非常喜歡,他允許當一個選定的屬性被訪問或者被更改的時候程序執行暫停,并進行debug。最簡單的辦法是在類中聲明成員變量的語句行號左邊雙擊,就可以加入一個觀察點。

           

          4、查看變量

          在選中的變量上使用Ctrl+Shift+d 或者 Ctrl+Shift+i可以查看變量值,另外我們還可以在Expressions View中添加監視。

           

          5、改變變量值

          我們可以在Debug的時候改變其中變量的值。在Variables View中可以按下圖所示操作。

           
          6、在Main方法中停止
          在Run/Debug設置中,我們可以按如下圖所示的啟用這個特性。程序將會在main方法的第一行停住
           
          7、環境變量
          我們可以很方便的在Edit Conriguration對話框中添加環境變量
           
          8、Drop to frame
          這個功能非常酷,是我第二個非常喜歡的功能,Drop to frame就是說,可以重新跳到當前方法的開始處重新執行,并且所有上下文變量的值也回到那個時候。不一定是當前方法,可以點擊當前調用棧中的任何一個frame跳到那里(除了最開始的那個frame)。主要用途是所有變量狀態快速恢復到方法開始時候的樣子重新執行一遍,即可以一遍又一遍地在那個你關注的上下文中進行多次調試(結合改變變量值等其它功能),而不用重來一遍調試到哪里了。當然,原來執行過程中產生的副作用是不可逆的(比如你往數據庫中插入了一條記錄)。
           
          9、Step 過濾
          當我們在調試的時候摁F5將進入方法的內部,但這有個缺點有的時候可能會進入到一些庫的內部(例如JDK),可能并不是我們想要的,我們可以在Preferences中添加一個過濾器,排除指定的包。
           


          10、進入、跳過、返回

          其實這個技巧是debug最基本的知識。
          • F5-Step Into:移動到下一步,如果當前的行是一個方法調用,將進入這個方法的第一行。(可以通過第九條來排除)
          • F6-Step Over:移動到下一行。如果當前行有方法調用,這個方法將被執行完畢返回,然后到下一行。
          • F7-Step Return:繼續執行當前方法,當當前方法執行完畢的時候,控制將轉到當前方法被調用的行。
          • F8-移動到下一個斷點處。
           

          posted on 2012-09-17 10:11 AthrunWang 閱讀(437) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 肇东市| 哈巴河县| 新干县| 秦安县| 双流县| 玉龙| 成武县| 白银市| 铅山县| 绿春县| 嘉义县| 万安县| 兴山县| 巴东县| 桑植县| 石门县| 太康县| 明光市| 天长市| 武强县| 贵溪市| 无为县| 阿克苏市| 普兰县| 宣恩县| 武安市| 简阳市| 浦东新区| 周至县| 赣榆县| 隆安县| 垣曲县| 湘阴县| 扎鲁特旗| 黔西县| 大化| 襄汾县| 辽阳县| 徐闻县| 龙里县| 壤塘县|