在這篇教程中,咱們將看到有關使用Eclipse去調試Java應用,調試可以幫助咱們找到並修改應用的缺陷。咱們將關注運行時問題,而不是編譯時錯誤。有像GDB同樣的命令行調試器也同樣可用。在這篇教程中,咱們關注基於GUI的調試器,經過這篇教程,咱們會讓咱們最喜歡的IDE——Eclipse飛跑起來。雖然咱們講解的是Ecilpse,可是,這些技巧是十分通用,也適合大多數IDE調試,好比NetBeans。 在通讀這篇文章以前,我推薦你去看看Eclipse的快捷鍵,他也十分有用。在寫這篇文章時,個人Eclipse版本是Juno。java
別把System.out.println當作調試工具框架
啓用全部組件的詳細的日誌級別eclipse
使用日誌分析器去讀取日誌文件工具
PS:通讀這篇教程,五分鐘便可。編寫demo逐一實踐這篇教程,半個小時足矣。但工做效率將大大提升。記住:「I hear and I forget, I see and I remember, I do and I understand.」 學習
一、Conditional Breakpoint 條件斷點 指望你知道怎麼添加斷點。不然,只要點擊左窗格(在行數的前面)斷點就會被建立。在調試模式視角(debug prespective)下,‘斷點’試圖(Breakpoints view)會列出被建立的斷點。咱們可以給它添加布爾值(boolean)條件。如此,只有布爾值條件正確斷點纔會被激活並執行。不然將會跳過。命令行
PS:這個就是有條件的斷點。只有知足條件纔會被調用。應該比較經常使用,不用多說。 debug
二、Exception Breakpoint 異常斷點 在斷點視圖有一個像J!標籤的按鈕,咱們能夠用它添加一個java的異常斷點,好比當一個空指針異常拋出時,咱們想讓程序暫停,並容許調試,這時候咱們就能夠用這個方法。指針
三、Watch Point 觀察點 這是一個我十分喜歡的功能,當選中的屬性被訪問或修改時,執行的程序將暫停並容許調試。在Outline視圖中選擇一個類變量,從右鍵菜單中選擇切換觀察點(Toggle Watchpoint.),這樣就會建立爲這個變量建立一個觀察點,並在斷點試圖中列出。調試
PS:十分牛X的功能,以前還沒用過,慚愧慚愧…… 日誌
PS:另外方法也能夠用
四、求值(顯示、檢驗、觀察) 在被選擇的變量與表達式上用 Ctrl+Shift+d 或者Ctrl+Shift+i,就會顯示值。在調試中,咱們也能夠添加一個永久的觀察。那麼他就會出如今表達式試圖(Expressions view )中。
五、Change Variable Values 修改變量的值 在調試過程當中,咱們能夠動態地修改變量的值:選擇一個變量,進入變量視圖,選擇值、類型,按下Enter鍵。
六、Stop in Main 在主方法中中止 在運行/調試設定中(Run/Debug Settings),編輯配置( Configuration)中咱們能夠選中一個叫「Stop In Main」的複選框。若是這樣,當咱們調試程序,程序經過main方法啓動時,將會停在mian方法的第一行。
PS:這個在框架啓動的時候很是有用,我一直就想找到這樣的方法……
七、相比去系統屬性中添加環境變量,咱們經過編輯配置對話框便利地添加變量。
八、Drop to Frame 進入到幀 這是第二個我喜歡的功能,在調試中,咱們將控制權返回到調用棧的任意幀,可是變量已經的發生的改變不會重置。選擇你想返回並從新調試的棧級,在調試工具欄中點擊進入棧幀的按鍵,Eclipse 十分的酷!
PS:很強大的功能,選擇棧幀能夠重複調試,惟一的遺憾就是不能重置變量,這也與JVM有關。
九、Step Filter步過濾器 當咱們步入方法(F5)時,咱們可能進入外部的包(像 java),但是咱們並不須要它,咱們能夠在首選項中,添加一個過濾器來排除某些包。
十、Step Into, Over and Return 步入、跳過、返回 我把這個放在最後一點,這是學習的第一件事:-)
F5 - 步入: 移動到下一步,若是當前行有一個方法調用,那麼控制權就會進入該方法的第一行。
F6 - 跳過: 移動到下一步,若是當前行有一個方法調用,那麼方法調用將在內部執行,只是將控制權移到下一行。
F7 - 返回: 若是是在方法內執行,那麼控制權將移到當前方法被調用的調用行。
F8 - 跳轉到下一個斷點
PS:的確是基礎……