標籤:使用 strong 資料 io 資料庫 res
先提三點
- 不要使用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-移動到下一個斷點處。