eclipse調試技巧

F8-------運行到下一斷點處

F5-------STEP INTO

F6-------STEP OVER

 

***********************************************************************

Eclipse Java常用快捷鍵(Eclipse Shortcut Keys for Java Top10) 

                Eclipse Java常用快捷鍵(Eclipse Shortcut Keys for Java Top10)
0.背景 
Eclipse 作爲Java的OpenSource開發IDE,已經是開發人員進行Java應用開發(不侷限於)的首選,雖然還有很多其他的可選IDE,但是其他的工具 要麼是付費工具,比如IntelliJ,IBM Rational Application Developer(Eclipse+IBM Plugins),JBuilder等;或者功能不是十分的強大,比如一些中小型的集成開發工具或者諸如Ant這樣的構建工具。
關於各種Java IDE的一個比較,請參考:http://www.apl.jhu.edu/~hall/java/IDEs.html#Java-IDEs 
Eclipse的開源性是其廣泛應用的主要原因之一。同時Plugable的特點使得任意插件可以很方便的集成的IDE中,使得IDE的功能變得容易伸縮,在基本的平臺上可以添加任意多插件。
1.說明 
    a.在Eclipse中,可以通過Window->Preferences->General-Keys進行快捷鍵的自定義設置,可以根據用戶的個人喜好,進行自定義。
    b.如果在操作系統中定義了其他的與Eclipse衝突的快捷鍵,此時Eclipse的快捷鍵是否有效,取決於操作系統。
(比如在操作系統中,簡體中文輸入法的切換會使用CTRL+SPACE作爲快捷鍵,而在Eclipse Java編輯器中,這個快捷鍵是用於Content Assist的。)
(如果使用谷歌拼音輸入法的話,該軟件會默認使用CTRL+SHIFT+S、CTRL+SHIFT+K、CTRL+SHIFT+T作爲快捷鍵,其中CTRL+SHIFT+T是Eclipse中比較常用的快捷鍵。)
    c.本文介紹的快捷鍵是指通過鼠標操作時比較麻煩,沒有鍵盤操作快速的時候,比如格式化代碼功能,如果使用鼠標,那麼要Right Click->Source->Format,由於在右鍵菜單中有非常多的選項,首先要找到Source,然後再Source菜單下面還有很 多子菜單,再找到Format,這樣的話,就沒有使用快捷鍵方便了。
但是如果要格式化整個package中的多個類,那麼一個一個的將java類 文件打開,然後再CTRL+SHIFT+F就比較慢了,可以直接選中package,然後Right Click->Source->Format,所以說,具體使用鼠標還是快捷鍵,取決於開發人員的個人喜好,本文介紹的只是相對比較常用的快 捷鍵。
    d.對於編輯器固有的快捷鍵本文不做介紹,例如CTRL+C,CTRL+X,CTRL+V,CTRL+F(Find&Replace),CTRL+N(New),F5等。
    e.一些比較複雜的快捷鍵,例如要同時按下四個鍵的話,我的手指不夠靈活,本文不做介紹。
1.Java開發快捷鍵介紹 
i.自動格式化:CTRL+SHIF+F
 
比較常用的功能,雖然筆者還是喜歡自己在編寫代碼的時候使用空格進行格式化,但是有的時候也會使用這個快捷鍵進行格式化,畢竟手寫的時候容易出現失誤的情況。
ii.內容幫助(Content Assist):CTRL+SPACE 
當你輸入一個類,只記得類的前幾個字符,例如對於java.text.MessageFormat,只記得好象是以Message開頭的,那麼輸入Message之後,使用CTRL+SPACE試試,所有以Message開頭的可用的類就都可以看到了。
當 你定義一個變量,但是變量的名字比較長(雖然不推薦長變量名,但是有時候還是難以避免,因爲要見名達意嘛),這樣每次輸入時就比較費時耗力了,比如 priceOfPotato,priceOfTomato,這時只需要輸入p,然後使用該快捷鍵,一些可用的內容就出現了,出現的數序是局部變量和成員變 量在前面,然後是類,接口等。
iii.查看Declaration/打開類型Hierarchy:F3/F4 
選中package,類,方法,變量,按下F3快捷鍵,就可以跳轉到該package,類,方法,變量的定義了。
通過F4快捷鍵,可以查看類,接口的層次(繼承,實現)關係,以樹狀形式顯示。
iv.快速修改:CTRL+1 
出現了紅色波浪線(錯誤)怎麼辦,首選是看看eclipse有什麼建議,CTRL+1可以顯示Eclipse的修改建議,然後選擇你認爲正確的修改方式吧。
v.打開資源(類型):CTRL+SHIFT+R/T
如果一個工程中有上百個類,那麼定位某一個類,通過在層次樹中去找實在太麻煩了,可以同通過CTRL+SHIFT+R來查找資源,這裏資源包括java源代碼,各種資源文件等等。
而如果要查看jar包中的類,那麼就需要使用CTRL+SHIFT+T來查看類型了。
vi.DEBUG快捷鍵:F5,F6,F7,F8---運行/DEBUG最後一次啓動:CTRL+F11/F11 
F5爲調試時進入方法。例如
public void print(){
    String today = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG).format(new Date());
}
此時Debug時按下F5,即可進入format方法。
從format方法返回到print方法的方式是執行完format方法後自動返回,或者按下F7快捷鍵返回。
F6快捷鍵用於單步執行。
F8快捷鍵用於繼續執行到下一個斷點。
可以通過CTRL+F11和F11快捷鍵進行上一次的運行或者上一次的DEBUG。
vii.重構:ALT+SHIFT+R 
重構是eclipse中比較重要的一個功能,類,方法等都可以進行重構,並將關聯引用的地方進行同步的重構。
viii.組織導入:CTRL+SHIFT+O 
在java編輯器中,可以通過使用這個快捷鍵來進行缺少的類的導入以及多餘的導入的刪除。
ix.添加註釋:CTRL+/ 
可以通過這個快捷鍵方便的將當前行或者選中的多行進行註釋,註釋的類型爲單行註釋。
x.快速Outline:CTRL+O 
在當前類中按下CTRL+O,可以顯示當前類的所有的方法(不包括繼承的),如果按下該快捷鍵兩次,可以查看到當前類及其父類的所有的方法。
4.其他常用快捷鍵 
雖然不僅僅在java開發中使用,但是下面的這些快捷鍵也非常頻繁的被使用。
    刪除行(Delete Line):CTRL+D
    查找下(上)一位置:CTRL+K/CTRL+SHIFT+K
    定位具體某一行:CTRL+L
    向上(下)移動選中的行:ALT+UP/DOWN ARROW
    文件中出現次數:CTRL+SHIFT+A
    打開檢索對話框:CTRL+H
    單詞自動完成:ALt+/
5.總結
本文介紹了使用Eclipse進行Java開發時常用的快捷鍵。



http://daimojingdeyu.iteye.com/blog/633824

1、 條件斷點

斷點大家都比較熟悉,在Eclipse Java 編輯區的行頭雙擊就會得到一個斷點,代碼會運行到此處時停止。

條件斷點,顧名思義就是一個有一定條件的斷點,只有滿足了用戶設置的條件,代碼纔會在運行到斷點處時停止。

在斷點處點擊鼠標右鍵,選擇最後一個"Breakpoint Properties"

斷點的屬性界面及各個選項的意思如下圖,

2、 變量斷點

斷點不僅能打在語句上,變量也可以接受斷點,

上圖就是一個變量的打的斷點,在變量的值初始化,或是變量值改變時可以停止,當然變量斷點上也是可以加條件的,和上面的介紹的條件斷點的設置是一樣的。

3、 方法斷點

 

方法斷點就是將斷點打在方法的入口處,

方法斷點的特別之處在於它可以打在 JDK的源碼裏,由於 JDK 在編譯時去掉了調試信息,所以普通斷點是不能打到裏面的,但是方法斷點卻可以,可以通過這種方法查看方法的調用棧。

4、 改變變量值

代碼停在了斷點處,但是傳過來的值不正確,如何修改一下變量值保證代碼繼續走正確的流程,或是說有一個異常分支老是進不去,能不能調試時改一下條件,看一下異常分支代碼是否正確?

Debug 視圖的 Variables 小窗口中,我們可以看到 mDestJarName 變量的值爲 "F:\Study\eclipsepro\JarDir\jarHelp.jar "

我們可以在變量上右鍵,選擇"Change Value..." 在彈出的對話框中修改變量的值,

 

或是在下面的值查看窗口中修改,保用Ctr+S 保存後,變量值就會變成修改後的新值了。

5、 重新調試

 

這種調試的回退不是萬能的,只能在當前線程的棧幀中回退,也就說最多隻能退回到當前線程的調用的開始處。

回退時,請在需要回退的線程方法上點右鍵,選擇 "Drop to Frame"

6、 遠程調試

用於調試不在本機上的程序,有兩種方式,

1、本機作爲客戶端

2、本機作爲服務端

使用遠程調試的前提是服務器端和客戶端的代碼是一致的。

 

本機作爲客戶端

本機作客戶端比較常用,需要在遠端的服務器上的java程序在啓動時打開遠程調試開關,

服務器端需要加上虛擬機參數

1.5以前版本(1.5以後也可用):【-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 】

1.5及以上版本:【 -agentlib:jdwp=transport=dt_socket,server=y,address=8000】

F:\Study\eclipsepro\screensnap>java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar screensnap3.jar

連接時遠程服務器時,需要在Eclipse中新建一個遠程調試程序

這裏有一個小地方需注意,連接上的時候貌似不能自動切換到Debug視圖,不要以爲本機的調試程序沒有連接到服務器端。

 

本機作爲服務端

同本機作爲客戶端相比,只需要修改一下“Connection Type”

 

這時Eclipse會進入到等待連接的狀態

連接程序使用如下參數即可連接本機服務器,IP地址請用實現IP替換~~

【-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000】

F:\Study\eclipsepro\screensnap>java -agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000 -jar screensnap3.jar

 

遠程調試時本地的代碼修改可同步到遠程,但不會寫到遠程的文件裏,也就是說本地修改會在下次啓動遠程程序時就沒有了,不會影響到下次使用時的遠程代碼。

 

有關遠程調試更詳細點的介紹請參考【使用 Eclipse 遠程調試 Java 應用程序】

 

 

好像漏了一個斷點,異常斷點,補一下。

7、異常斷點

經常遇見一些異常,然後程序就退出來了,要找到異常發生的地方就比較難了,還好可以打一個異常斷點,

上圖中我們增加了一個NullPointException的異常斷點,當異常發生時,代碼會停在異常發生處,定位問題時應該比較有幫助。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章