標籤:
目錄(?)[+]
作為開發人員,掌握開發環境下的調試技巧十分有必要。去年就想把關於Eclipse斷點調試總結下了,由於對時間的掌控程度仍需極大提高,結果拖到今年才寫了此篇博文。關於java調試技術還有很多,如Java Debug Interface等,依據具體項目的需要,還有很多值得去研究和學習的。該博文僅就Eclipse斷點調試技巧做下總結,不足夠的地方還請大牛們指點。
1 Debug視圖
1.1 線程堆棧視圖
線程堆棧視圖表示當前線程的堆棧,從中可以看出在運行哪些代碼,並且整個調用過程,以及程式碼號。分別介紹一下這幾個按鈕的含義。從左至右分別為:
1.表示當前實現繼續運行直到下一個斷點,快速鍵為F8。
2.表示打斷整個進程
3.表示進入當前方法,快速鍵為F5。
4.表示運行下一行代碼,快速鍵為F6。
5.表示退出當前方法,返回到調用層,快速鍵為F7。
6、表示返回當前線程堆棧的起始處開始執行。
1.2 變數視圖
1.為變數名視圖,顯示當前程式碼中所有可以訪問的執行個體變數和局部變數
2.顯示所有的變數值
3.可以通過該視窗來改變變數值
1.3 斷點視圖
1.顯示所有斷點
2. 將當前視窗1中選中的連接埠失效,再次點擊啟用。
3.異常斷點
經常遇見一些異常,然後程式就退出來了,要找到異常發生的地方就比較難了,還好可以打一個異常斷點。到了異常的地方,當前線程就掛起。
1.運算式2. 點擊此可以新增一個運算式。
斷點大家都比較熟悉,在Eclipse Java 編輯區的行頭雙擊就會得到一個斷點,代碼會運行到此處時停止。方法斷點是打在方法的入口處。
方法斷點的特別之處在於它可以打在 JDK的源碼裡,由於 JDK 在編譯時間去掉了調試資訊,所以普通斷點是不能打到裡面的,但是方法斷點卻可以,可以通過這種方法查看方法的調用棧。
2.2 條件斷點
條件斷點,顧名思義就是一個有一定條件的斷點,只有滿足了使用者佈建的條件,代碼才會在運行到斷點處時停止。
在斷點處點擊滑鼠右鍵,選擇最後一個"Breakpoint Properties"
斷點屬性中有三個選擇,啟用“Enable”,Hit Count和Conditional中依據我們的需要來選擇。
1)Hit Count 是指定斷點處的程式碼片段運行多少次,最典型的就是迴圈,如果要讓一個迴圈執行10次就線程掛起,則指定Hit Count值為10,那麼當前的迴圈執行到第九次的時候就會掛掉。
2)Conditional,顧名思義,就是條件判斷,例如我們需要迴圈變數i==10時,線程掛起,則條件設定為i==10,選擇Suspend when "true"。
那如果上面的Hit Count和Conditional都選擇的話,如果運算式和值設定不合理則會實效。如果選擇Suspend when value changes,那麼可能在Conditional在變數值發生改變的時候就掛起。
2.3 變數斷點
修改變數值的情況適用於代碼停在斷點處,但是傳過來的值不正確,那麼可以通過修改這個變數值,保證代碼走正確的流程;或者是說有一個異常分支老是進不去,能不能調試時改一下條件,看一下異常分支代碼是否正確。
我們可以在變數上右鍵,選擇"Change Value..." 在彈出的對話方塊中修改變數的值。
或是在下面的值查看視窗中修改,保用Ctr+S 儲存後,變數值就會變成修改後的新值了。
關於斷點調試,還有異常斷點等,已在Dubug視圖中提過,還有遠端偵錯的。因為自己沒試過,所以期待下次的博文。
Eclipse斷點調試