首页 > 软件开发 > ECLIPSE >

使用Eclipse调试Java的十个技巧

来源:互联网 2023-03-17 00:11:04 211
  • 不要使用System.out.println作为调试工具9Io办公区 - 实用经验教程分享!

  • 启用所有组件的详细的日志记录级别9Io办公区 - 实用经验教程分享!

  • 使用一个日志分析器来阅读日志9Io办公区 - 实用经验教程分享!

  • 9Io办公区 - 实用经验教程分享!

    1、条件断点9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    象一下我们平时如何添加断点,通常的做法是双击行号的左边。在debug视图中,BreakPointView将所有断点都列出来,但是我们可以添加一

    9Io办公区 - 实用经验教程分享!

    个boolean类型的条件来决定断点是否被跳过。如果条件为真,在断点处程序将停止,否则断点被跳过,程序继续执行。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    2、异常断点9Io办公区 - 实用经验教程分享!

    在断点view中有一个看起来像J!的按钮,我们可以使用它添加一个基于异常的断点,例如我们希望当NullPointerException抛出的时候程序暂停,我们可以这样:9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    3、观察点9Io办公区 - 实用经验教程分享!

    这个特性我非常喜欢,他允许当一个选定的属性被访问或者被更改的时候程序执行暂停,并进行debug。最简单的办法是在类中声明成员变量的语句行号左边双击,就可以加入一个观察点。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    4、查看变量9Io办公区 - 实用经验教程分享!

    在选中的变量上使用Ctrl Shift d或者Ctrl Shift i可以查看变量值,另外我们还可以在ExpressionsView中添加监视。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    5、改变变量值9Io办公区 - 实用经验教程分享!

    我们可以在Debug的时候改变其中变量的值。在VariablesView中可以按下图所示操作。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    6、在Main方法中停止9Io办公区 - 实用经验教程分享!

    在Run/Debug设置中,我们可以按如下图所示的启用这个特性。程序将会在main方法的第一行停住9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    7、环境变量9Io办公区 - 实用经验教程分享!

    我们可以很方便的在EditConriguration对话框中添加环境变量9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    8、Droptoframe9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    个功能非常酷,是我第二个非常喜欢的功能,Droptoframe就是说,可以重新跳到当前方法的开始处重新执行,并且所有上下文变量的值也回到那个

    9Io办公区 - 实用经验教程分享!

    时候。不一定是当前方法,可以点击当前调用栈中的任何一个frame跳到那里(除了最开始的那个frame)。主要用途是所有变量状态快速恢复到方法开始

    9Io办公区 - 实用经验教程分享!

    时候的样子重新执行一遍,即可以一遍又一遍地在那个你关注的上下文中进行多次调试(结合改变变量值等其它功能),而不用重来一遍调试到哪里了。当然,原来

    9Io办公区 - 实用经验教程分享!

    执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记录)。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    9、Step过滤9Io办公区 - 实用经验教程分享!

    当我们在调试的时候摁F5将进入方法的内部,但这有个缺点有的时候可能会进入到一些库的内部(例如JDK),可能并不是我们想要的,我们可以在Preferences中添加一个过滤器,排除指定的包。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    10、进入、跳过、返回9Io办公区 - 实用经验教程分享!

    其实这个技巧是debug最基本的知识。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    F5-StepInto:移动到下一步,如果当前的行是一个方法调用,将进入这个方法的第一行。(可以通过第九条来排除)9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    F6-StepOver:移动到下一行。如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    F7-StepReturn:继续执行当前方法,当当前方法执行完毕的时候,控制将转到当前方法被调用的行。9Io办公区 - 实用经验教程分享!

    9Io办公区 - 实用经验教程分享!

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!9Io办公区 - 实用经验教程分享!


    标签: ECLIPSEJAVA

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码