1. 程式人生 > >Eclipse進行斷點除錯程式

Eclipse進行斷點除錯程式

如何除錯Java程式?

大家最開始學習Java,都會覺得IDE除錯好高階有木有,其實很簡單。

下文會盡量簡單直觀的教會你在Eclipse中除錯,其他的IDE除錯步驟也是類似的。這樣以後可以不用再用列印語句,輸出變量了。

1.在你覺得有錯的地方設定斷點。

在程式碼行數前,點選右鍵,注意是右鍵,然後選擇Toggle Breakpoint。


你可能會問,我如何知道在哪兒放置斷點?

  • 如果對這個問題完全沒有感覺,你完全可以多打幾個斷點,單步除錯直到找到異常,只是多花一點時間而已,而且這樣可以更深入瞭解程式的執行過程!
  • 當然,如果你大致可以直到哪裡可能會出問題,或者異常資訊報告類位置,那麼就可以在這裡設定斷點。

2.點選Debug,如果是web程式,需要你將Tomcat或者Apache伺服器以Debug模式啟動

這很重要,標準的Start模式,不能進入預先設定的斷點,也就不能達到除錯的目的。


3.執行程式,當程式執行到剛才設定斷點的位置就會停下來,並且那行程式碼底色會高亮顯示。


這時候,你可以通過螢幕按鈕或者鍵盤控制程式的進行。

下面是鍵盤對應除錯的快捷鍵,如果不起作用,你可以檢查一下是不是鍵盤衝突

比如有道詞典的快捷鍵,經常會和Debud模式下的Resume衝突。

作用域 功能 快捷鍵 

全域性 單步返回 F7 
全域性 單步跳過 F6 
全域性 單步跳入 F5 
全域性 單步跳入選擇 Ctrl+F5 
全域性 除錯上次啟動 F11 
全域性 繼續 F8 
全域性 使用過濾器單步執行 Shift+F5 
全域性 新增/去除斷點 Ctrl+Shift+B 
全域性 顯示 Ctrl+D 
全域性 執行上次啟動 Ctrl+F11 
全域性 執行至行 Ctrl+R 
全域性 執行 Ctrl+U

4.進入除錯介面可以看到你想要的資訊。


5.在Variables裡面可以檢視所有變數的值,比如剛才設定的斷點裡面的值,右鍵ChangeValue可以更改,部分IDE支援在視窗中熱更改並執行程式碼。


6.下面按鈕第一個是進入方法執行,比如你呼叫了其他方法,可以進入方法一步一步執行,如果點選第二個按鈕,只會在本方法內一步一步執行,第三個按鈕時你跳出此方法,繼續執行呼叫這個方法的原方法,說明如下。


7.執行完程式。

8.為Eclipse新增反編譯外掛,更好的除錯

一般來說,我們的專案或多或少的都會引用一些外部jar包,如果可以檢視jar包的原始碼,對於我們的除錯可以說是事半功倍。

1、下載並安裝jad.exe。

將jad.exe解壓到程式目錄(可以放置任意目錄),例如:C:\Program Files\Jad\jad.exe。

2、安裝jadclipse外掛。下載並解壓net.sf.jadclipse_3.3.0.jar,將其拷貝到eclipse\plugins目錄下,重新啟動eclipse。

3、配置jadclipse。在eclipse視窗下,點選Window > Preferences > Java > JadClipse > Path to Decompiler。 
(設定jad的絕對路徑,例如 C:\Program Files\Jad\jad.exe) 
可將Use Eclipse code formatter(overrides Jad formatting instructions)選項打勾,這樣可以與Ctrl+Shif+F格式化出來的程式碼樣式一致。

執行完這幾個步驟,再在匯入自Jar包的類或者方法上點選檢視,就可以檢視原始碼了,如果不能,參考下面的解決辦法:

多數情況下,是eclipse未能自動將JadClipse Class File Viewer設定成class檔案的預設開啟方式。
在Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”和“*.class without source”預設關聯的編輯器為“JadClipse Class File Viewer”。
曾經配置過幾次jad外掛,如果不能反編譯,如此設定後,屢試不爽。