eclipse調試java程序的九個技巧--有鏈接

from 點擊打開鏈接 http://www.cnblogs.com/lingiu/p/3802391.html

九個技巧:

  1. 邏輯結構
  2. 條件debug
  3. 異常斷點
  4. 單步過濾
  5. 跳到幀
  6. Inspect
  7. expressions
  8. display
  9. 遠程debug

 

  最早開始用eclipse的debug的時候,只會F5 F6 F7 F8,甚至F7都不是很搞的明白是怎麼用的,那時候資淺,碰不到需要複雜debug的代碼,慢慢工作深入了,場景碰多了,就需要各種debug技巧來提升定位bug效率,以前找人幫忙排查問題,看他開各種窗口debug各種溜甚是羨慕嫉妒恨,慢慢久病成醫自己也用溜了eclipse的一些主要的debug技巧。稍作整理分享出來。

  F5678這四個基本技能就略過不說了,但是最基本的技能能解決90%問題,所以雖然略過不說 ,但是必須用的很溜,相信園友達人們這四個肯定比我用的溜的多。

1. 邏輯結構

邏輯結構主要用來展示map之類的collection數據結構存儲的值的,它只展示存儲值的邏輯部分,而屏蔽了數據結構詳細的內部結構,更方便我們查看map之類collection結構裏存儲的值,推薦使用。

這個按鈕就是展示邏輯結構的按鈕,下面兩個圖,上圖是不展示邏輯結構,下圖是展示邏輯結構,很明顯,下圖的結構可讀性更強,可以專注於debug的變量。

 

2. 條件debug

條件debug用在需要滿足某種條件纔會觸發斷點的場景,比如只有id是12345這條記錄會有問題,那就當id等於12345時才觸發斷點,其他都放過。

右擊斷點選擇斷點屬性,就能看到這樣一個配置框,右邊的文本區塊可以填寫條件代碼,比如id==12345,由於每次都要做這個判斷,如果循環數很大的話,還是有點點慢的,你可以去上個廁所接個水啊什麼的,還是很方便的。

 

 

3. 異常斷點

異常斷點只要用在debug某種異常的時候,可以配置當這個異常出現後才觸發斷點,不需要debug去尋找異常。

點擊這個紅圈就能彈出異常斷點的窗口,會列出你係統裏的所有異常類,然後選擇需要斷點的異常就OK。

 

 

4. 單步過濾

單步過濾的場景是我們在使用F5來跟到某個方法內部的時候,經常會跟到一些我們確定不需要看的方法內部。

this.getTradeDetail(uid, itemStr.subString(0,5))

比如這行代碼,想F5進入getTradeDetail內部,會首先執行itemStr.subString方法,會先進入subString方法,而這方法是jdk的String方法,確定沒問題,不需要關心,單步過濾就是跳過這些我們想忽略的方法直接到目標方法內部的一種debug技巧。

Window > PreferencesJava > Debug > Step Filtering 設置過濾器, 可以選擇需要過濾掉的包和類。同時要確保你在debug視圖中啓用了單步過濾,如下圖。這樣在使用單步調試的時候,就會使用到這個過濾功能。

上圖是過濾器配置,典型的就是把jdk的一些類和包配置過濾。下圖是要在debug時候開啓單步過濾,否則不生效。

 

 

 

 

5. 跳到幀

跳到幀是一種重入技巧,在debug時,eclipse可以直接跳到調用棧中指定的任意楨,並且使JVM在此處重新運行。這使你可以重新運行你的部分代碼,而不需要爲了調試之前的代碼而重新來一次。

要注意的是:已經被修改的變量不會被重置,它們會保留當時的值。

使用方式:選擇調用棧中的一楨,點擊按鈕“跳到楨”

6. Inspect

inspect用來查看某個表達式的之,對於變量值debug很容查看,但是對於一個表達式的值就不容易查看,還是這句:

this.getTradeDetail(uid, itemStr.subString(0,5))

想看getTradeDetail的值,就沒法想看變量值一樣(雖然這個很有可能是賦值給一個變量...),要看這種表達式值,就需要inspect,具體做法是選中這行表達式,然後右擊->inspect,或者更方便的快捷鍵組合:ctrl+shift+i,會彈出如下的展示表達式結果的框:

7. expressions

expressions窗口也是用來看變量或者表達式的值的,在windows->show viewz中打開expression窗口,然後在裏面添加你想觀察的表達式,比如還是這句:

this.getTradeDetail(uid, itemStr.subString(0,5))

然後debug的時候,就能看到被添加的表達式結果了,另外也能根據需要改value的值。

8. display

display也是用來觀察和修改變量or表達式的,這個應該用的人比較多,在windows->show viewz中打開display窗口,可以在display窗口裏寫表達式,然後右擊選擇display運行查看結果或者ctrl+shift+D快捷鍵組合,表達式可以是程序中一行代碼或者你自己寫的一個賦值語句來改變變量值之類的。

 

9. 遠程debug

遠程debug可以用來調試遠程服務器上的代碼,保證你本地代碼和遠程部署的代碼是一致,就可以通過這種方式debug服務器代碼,這個是java web開發的一大利器,否則定位服務器問題簡直是災難。

遠程debug需要服務器端啓動jvm的時候做一些開啓和端口的配置,具體的配置網上很多,搜一下即可。然後在本地的debug configuration中雙擊添加一個remote java application,填寫遠程主機的host和配置的debug端口,就可以開始debug了,如下圖:


發佈了23 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章