高效调试:条件化断点

高效调试:条件化断点(译)
高效调试:条件化断点
本文是JavaLobby上的一篇博文,介绍了一个使用Eclipse和NetBeans进行调试的小窍门,我受益良多,也希望对大家有所助益。(2009.12.31最后更新)

最重要的开发者工作之一就是调试。在我的大学时代,我们被迫使用简单的文本编辑器开发软件,所以开始时,我使用打印语句来观察程序在什么地方出错了。现在,IDE使我们能很便捷地完成这一工作。...
我在Eclipse和NetBeans中见过的最佳特性就是条件化断点思想。这个想法很简单,打上断点,然后输入使调试线程能够停在该断点处的条件。例如,若有如下代码:
for (Employee emp: employees)
{
    
if (emp.getType()  ==  Employee.MANAGER)
    {
        addToManagers(emp);
    }
}

假设,当雇员的getType方法的值为Employee.DEVELOPER时,我想察看所有变量的值,并在单步调试时能确保不会进入IF语句块。
在Eclipse中,你可一如往常那样在IF语句中设置断点,右键点击断点,你将看到如下菜单:


通过勾选Enable Condition复选框,你可以在结果对话框中为该断点设置一个条件:


当你键入条件时,你能获得完全的内容提示。你也能改变条件的意义--当该条件为真时,或者当在最近一次遍历之后值被改变时,是否需要停止。
对于NetBeans,也十分的相似。你仍要右键点击断点以获得属性菜单:


该对话框也有熟悉的条件,命中次数和内容提示:


像这样的特性才能真正地帮助你提升调试的效率--当你知道某个特定的值导致了程序失败时,你就能直捣问题的核心了。

祝大家新年愉快 :-D

你可能感兴趣的:(高效调试:条件化断点)