調試可以幫助識別和解決應用程序缺陷在本文中作者將使用大家常用的的開發工具Eclipse來調試Java應用程序但這裡介紹的調試方法基本都是通用的也適用於NetBeans IDE我們會把重點放在運行時上面
在開始之前推薦大家去看看Eclipse shortcuts這篇文章它將會給你帶來很多方便在本文中使用的是Eclipse Juno版(Eclipse )在開始前給大家提點建議!
不要使用Systemoutprintln作為調試工具
把所有涉及到的組件日志級別激活並使用
使用日志分析器來讀取日志
條件斷點
如果你不知道如何添加斷點只需點擊左邊面板(行號前面)斷點即被創建在調試界面中“斷點”視圖會把所有被創建的斷點列出來我們可以給它加一個布爾條件也就是說該斷點會被激活並且如果布爾條件為真就會執行該斷點否則將會跳過往下執行
異常斷點
在斷點視圖中有一個J!標記按鈕!我們可以使用該按鈕來添加一個Java異常斷點例如我們想讓程序在遇到空指針異常(NullPointerException)時仍然能繼續調試那麼我們可以使用該按鈕來添加一個異常斷點!
監視點
這是一個非常好的功能當選定的屬性訪問或修改程序時程序會停止執行並允許進行調試在Outline視圖中選擇一個類變量並從上下文菜單中選擇切換監視點屬性監視點將會被創建在斷點(Breakpoints)視圖中會把所有監視點用列表的形式顯示出來
評估/檢查
按Ctrl+Shift+D或者Ctrl+Shift+I來顯示選定變量或者表達式的值我們也可以給一個變量或表達式添加永久觀察點當程序在調試時這些觀察點就會在表達式視圖(Expression view)中顯示出來
修改變量值
在調試過程中我們可以修改變量值先選好一個變量然後進入變量視圖(Variables view)根據變量類型在其對應的Value列裡輸入值即可
在Main函數裡面停止執行
在運行/調試設置中編輯配置對話框中有“Main”這個選項卡我們可以勾選“Stop in main”這個復選框如果選中那麼在調試一個基於main方法的Java程序時程序會在main方法第一行位置便停止執行
環境變量
並不是在系統屬性中添加環境變量我們可以在編輯配置對話框中很方便地進行添加
Drop to Frame
這也是我最喜歡的一個功能調試期間可以重新跳到調用堆棧框架的開始處執行並且變量值也會回到最初根據回檔調整堆棧的深度這個功能的主要用途是所有變量狀態可以快速回到方法開始執行時候的樣子然後你可以重新進行一遍一遍執行這樣就可以在你關注的地方進行多次調試但是在執行過程中也會產生一些副作用比如插入到數據庫裡面的數據是無法刪除的!
分布過濾
當我們進入(F)方法的時候我們還可以訪問其外部庫(比如java*)我們可能不需要這個庫就可以在Perference選項卡頁面添加一個過濾器來排除這個包
進入跳出和返回
我把這個放在最後一點在調試過程中這些是必須要了解(最好掌握)的東西
F——進入移動到下一個步驟如果當前行有一個方法調用該控件將會跳轉到被調用方法的第一行執行
F——跳出移動到下一行如果在當前行有方法調用那麼會直接移動到下一行執行不會進入被調用方法體裡面
F——返回從當前方法中跳出繼續往下執行
F——移動到下一個斷點處執行
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20113.html