正所謂「工欲善其事必先利其器",會用Eclipse去調試能夠幫助識別和解決應用程序缺陷,同時也能夠幫助咱們去閱讀和理解一些源碼是有極大的幫助的。能夠極大的提升咱們的工做效率。java
認識debug視圖,紅色部分框爲線程堆棧視圖,黃色部分框爲表達式、斷點、變量視圖,藍色部分爲代碼視圖。linux
線程堆棧視圖web
分別介紹一下這幾個按鈕的含義:數據庫
1.表示當前實現繼續運行直到下一個斷點,快捷鍵爲F8。windows
2.表示打斷整個進程tomcat
3.表示進入當前方法,快捷鍵爲F5。服務器
4.表示運行下一行代碼,快捷鍵爲F6。框架
5.表示退出當前方法,返回到調用層,快捷鍵爲F7。eclipse
6.表示當前線程的堆棧,從中能夠看出在運行哪些代碼,而且整個調用過程,以及代碼行號函數
變量視圖
1.爲變量名視圖,顯示當前代碼行中全部能夠訪問的實例變量和局部變量
2.顯示全部的變量值
3.能夠經過該窗口來改變變量值
斷點視圖
1.顯示全部斷點
2. 將當前窗口1中選中的端口失效(你能夠發現你本身的窗口上的斷點所有被打上了斜槓),再次點擊啓用。
3.異常斷點
表達式視圖
表達式視圖:表達式視圖是Debug過程當中較爲經常使用的一個視圖,能夠對本身的感興趣的一些變量進行觀察,也能夠增長一些本身的表達式,也能夠查看一行代碼的運行結果。
1.表達式
2. 點擊此能夠新增一個表達式
代碼視圖
代碼視圖:用來顯示具體的代碼。其中綠色部分是指當前將要執行的代碼
這個能夠從新跳到調用堆棧框架的開始處執行,而且變量值也會回到最初。根據回檔調整堆棧的深度,這個功能的主要用途是全部變量狀態能夠快速回到方法開始執行時候的樣子,而後你能夠從新進行一遍一遍執行,這樣就能夠在你關注的地方進行屢次調試,可是在執行過程當中也會產生一些反作用,好比插入到數據庫裏面的數據是沒法刪除的!
在調試過程當中,咱們能夠修改變量值。先選好一個變量而後進入變量視圖(Variables view),根據變量類型在其對應的Value列裏輸入值便可。
條件斷點,顧名思義就是一個有必定條件的斷點,只有知足了用戶設置的條件,代碼纔會在運行到斷點處時中止。
在斷點處點擊鼠標右鍵,選擇最後一個"Breakpoint Properties"
斷點的屬性界面及各個選項的意思以下圖,
常常碰見一些異常,而後程序就退出來了,要找到異常發生的地方就比較難了,還好能夠打一個異常斷點,
上圖中咱們增長了一個NullPointException的異常斷點,當異常發生時,代碼會停在異常發生處,定位問題時應該比較有幫助。
單步過濾的場景是咱們在使用F5來跟到某個方法內部的時候,常常會跟到一些咱們肯定不須要看的方法內部。
this.getTradeDetail(uid, itemStr.subString(0,5))
好比這行代碼,想F5進入getTradeDetail內部,會首先執行itemStr.subString方法,會先進入subString方法,而這方法是jdk的String方法,肯定沒問題,不須要關心,單步過濾就是跳過這些咱們想忽略的方法直接到目標方法內部的一種debug技巧。
在Window > PreferencesJava > Debug > Step Filtering 設置過濾器, 能夠選擇須要過濾掉的包和類。同時要確保你在debug視圖中啓用了單步過濾,以下圖。這樣在使用單步調試的時候,就會使用到這個過濾功能。
下圖是過濾器配置,典型的就是把jdk的一些類和包配置過濾。下圖是要在debug時候開啓單步過濾,不然不生效。
開啓單步過濾
這些調試的小方法在咱們的調試項目的時候的確能夠給咱們很大的幫助,必定要學會。
這中調試方式在咱們的實際工做開發中用的很是多,特別是咱們的Java web 開發裏面,咱們的程序要跑在linux下面,可是咱們寫代碼,測試,通常在windows下,可是咱們想遠程的調試服務器上的代碼,特別是出了bug,咱們在本地是沒有問題,可是測試環境裏面一直有問題。
遠程debug:遠程debug顧名思義,可以將遠程操做系統上的任何java進行debug,可是有前提是本地須要有同步的代碼。
看到不少人,設置這,設置那個,其實不用那麼麻煩的,由於tomcat服務器已經內置了JPDA支持(Java的JPDA遠程調試程序,JPDA是JDK自帶的遠程調試機制)
在linux下的操做:
1.先中止tomcat
2.讓tomcat以能夠遠程調試的方法運行。
進入tomcat的bin目錄,執行以下命令
catalina.sh jpda run
在windows下的操做
1.打開Debug Configurations視圖
2.右擊Remote Java Application,
New
3.選擇源碼工程
4.輸入遠程IP和端口,端口即服務端的$DEBUG_PORT,點擊OK。
緣由是咱們已經有一個遠程鏈接了,咱們進入debug視圖將其關掉便可
1.打開Debug視圖,Window----Open Perspective----Debug,便可打開debug視圖
2.關閉這個遠程鏈接
點擊以下按鈕,便可關閉遠程調試鏈接了
至此,基本的Eclipse調試技巧講完了!