作为一个程序员

说到调试肯定是非常熟悉的吧~

调试作为评价一个程序员技术水平的重要方面

但是由于不同程序员面临的开发场景是不同的

所以程序的Bug也会有很多种不同呈现形式

如果是一些比较复杂的程序

即便是经验丰富的程序员,也不会感觉特别轻松

 

调试可以帮助识别和解决应用程序缺陷,本文将使用开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。

 

开始前先给大家提3条建议!

不要使用System.out.println作为调试工具

把所有涉及到的组件日志级别激活并使用

使用日志分析器来读取日志

 

条件断点

不知道如何增加断点的时候,只需要点击左侧面板(行号前面)断点就被创建出来了。在调试界面中,“断点”视图会把所有被创建的断点列出来。我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔条件为真,就会执行该断点,否则将会跳过往下执行。

异常断点

断点视图中,有一个 J! 的标记按钮,我们可以通过这个按钮来增加一个Java异常断点。举个例子,当我们想让程序遇到空指针时异常(NullPointerException),仍能继续调试,我们就可以使用异常断点。

监视点

监视点是一个非常有效的功能,当我们选定的属性访问或者修改程序时,程序就会停止执行并且允许进行调试。在Outline视图中选择一个类变量并从上下文菜单中选择切换监视点,属性监视点就会被创建,在断点(Breakpoints)视图中会把所有监视点用列表的形式显示出来。

评估/检查

同时按住Ctrl+Shift+D或者Ctrl+Shift+I可以用来显示选定变量或者表达式的值。也可以给一个表达式或者变量增加一个永久观察点,当程序调试的时候,这些观察点就会在表达视图(Expression view)显示出来。

修改变量值

调试过程中,我们还可以修改变量值。选好一个变量再进入变量视图(Variables view),根据变量类型再其对应的Value列里输入值就可以了。

在Main函数里停止执行

在运行/调试设置中,编辑配置对话框中有“Main”这个选项卡,我们可以勾选“Stop in main”这个复选框。如果选中,那么在调试一个基于main方法的Java程序时,程序会在main方法第一行位置便停止执行。

环境变量

并不是在系统属性中添加环境变量,我们可以在编辑配置对话框中很方便地进行添加。

Drop to Frame

这是一个很实用的功能,在调试期间,可以重新跳到调用堆栈框架的开始处执行,并且变量值也会回到最初。这个功能主要是可以让所有变量快速回到方法执行时候的样子,然后一遍一遍的执行,这样的话,你就可以在需要关注的地方多次调试,不过,这个方法在执行过程中也会有一些副作用,比如插入到数据库里面的数据是无法删除的!

分布过滤

当我们进入(F5)方法的时候,我们还可以访问其外部库(比如java.*),我们可能不需要这个库,就可以在Perference选项卡页面添加一个过滤器来排除这个包。

进入、跳出和返回

最后一点,也是必须要了解和掌握的东西。

F5——进入:移动到下一个步骤,如果当前行有一个方法调用,该控件将会跳转到被调用方法的第一行执行。

F6——跳出:移动到下一行。如果在当前行有方法调用,那么会直接移动到下一行执行。不会进入被调用方法体里面。

F7——返回:从当前方法中跳出,继续往下执行。

F8——移动到下一个断点处执行。

 

转载文章和图片均来自公开网络,版权归作者本人所有。如有侵权,联系删除。