原文:http://www.oschina.net/question/82993_69439 我也特別喜歡的是Drop to frame。java
在看這篇文章前,我推薦你看一下Eclipse 快捷鍵手冊,個人eclipse版本是4.2 Juno。數據庫
先提三點eclipse
- 不要使用System.out.println做爲調試工具
- 啓用全部組件的詳細的日誌記錄級別
- 使用一個日誌分析器來閱讀日誌
一、條件斷點工具
想象一下咱們平時如何添加斷點,一般的作法是雙擊行號的左邊。在debug視圖中,BreakPoint View將全部斷點都列出來,可是咱們能夠添加一個boolean類型的條件來決定斷點是否被跳過。若是條件爲真,在斷點處程序將中止,不然斷點被跳過,程序繼續執行。.net
二、異常斷點debug
在斷點view中有一個看起來像J!的按鈕,咱們可使用它添加一個基於異常的斷點,例如咱們但願當NullPointerException拋出的時候程序暫停,咱們能夠這樣:調試
三、觀察點日誌
這個特性我很是喜歡,他容許當一個選定的屬性被訪問或者被更改的時候程序執行暫停,並進行debug。最簡單的辦法是在類中聲明成員變量的語句行號左邊雙擊,就能夠加入一個觀察點。ip
四、查看變量get
在選中的變量上使用Ctrl+Shift+d 或者 Ctrl+Shift+i能夠查看變量值,另外咱們還能夠在Expressions View中添加監視。
五、改變變量值
咱們能夠在Debug的時候改變其中變量的值。在Variables View中能夠按下圖所示操做。
六、在Main方法中中止
在Run/Debug設置中,咱們能夠按以下圖所示的啓用這個特性。程序將會在main方法的第一行停住
七、環境變量
咱們能夠很方便的在Edit Conriguration對話框中添加環境變量
八、Drop to frame
這個功能很是酷,是我第二個很是喜歡的功能,Drop to frame就是說,能夠從新跳到當前方法的開始處從新執行,而且全部上下文變量的值也回到那個時候。不必定是當前方法,能夠點擊當前調用棧中的任何一個frame跳到那裏(除了最開始的那個frame)。主要用途是全部變量狀態快速恢復到方法開始時候的樣子從新執行一遍,便可以一遍又一遍地在那個你關注的上下文中進行屢次調試(結合改變變量值等其它功能),而不用重來一遍調試到哪裏了。固然,原來執行過程當中產生的反作用是不可逆的(好比你往數據庫中插入了一條記錄)。
九、Step 過濾
當咱們在調試的時候摁F5將進入方法的內部,但這有個缺點有的時候可能會進入到一些庫的內部(例如JDK),可能並非咱們想要的,咱們能夠在Preferences中添加一個過濾器,排除指定的包。
十、進入、跳過、返回
其實這個技巧是debug最基本的知識。
- F5-Step Into:移動到下一步,若是當前的行是一個方法調用,將進入這個方法的第一行。(能夠經過第九條來排除)
- F6-Step Over:移動到下一行。若是當前行有方法調用,這個方法將被執行完畢返回,而後到下一行。
- F7-Step Return:繼續執行當前方法,噹噹前方法執行完畢的時候,控制將轉到當前方法被調用的行。
- F8-移動到下一個斷點處。