高效調試:條件化斷點
本文是JavaLobby上的一篇博文,介紹了一個使用Eclipse和NetBeans進行調試的小竅門,我受益良多,也希望對大家有所助益。(2009.12.31最后更新)最重要的開發者工作之一就是調試。在我的大學時代,我們被迫使用簡單的文本編輯器開發軟件,所以開始時,我使用打印語句來觀察程序在什么地方出錯了。現在,IDE使我們能很便捷地完成這一工作。...
我在Eclipse和NetBeans中見過的最佳特性就是條件化斷點思想。這個想法很簡單,打上斷點,然后輸入使調試線程能夠停在該斷點處的條件。例如,若有如下代碼:
for(Employee emp: employees)
{
if(emp.getType() == Employee.MANAGER)
{
addToManagers(emp);
}
}
{
if(emp.getType() == Employee.MANAGER)
{
addToManagers(emp);
}
}
假設,當雇員的getType方法的值為Employee.DEVELOPER時,我想察看所有變量的值,并在單步調試時能確保不會進入IF語句塊。
在Eclipse中,你可一如往常那樣在IF語句中設置斷點,右鍵點擊斷點,你將看到如下菜單:
通過勾選Enable Condition復選框,你可以在結果對話框中為該斷點設置一個條件:
當你鍵入條件時,你能獲得完全的內容提示。你也能改變條件的意義--當該條件為真時,或者當在最近一次遍歷之后值被改變時,是否需要停止。
對于NetBeans,也十分的相似。你仍要右鍵點擊斷點以獲得屬性菜單:
該對話框也有熟悉的條件,命中次數和內容提示:
像這樣的特性才能真正地幫助你提升調試的效率--當你知道某個特定的值導致了程序失敗時,你就能直搗問題的核心了。
祝大家新年愉快 :-D