1.选中表达式右击选择watch,添加到表达式视图中inspect查看表达式的值。
2.鼠标悬停在变量上,显示变量当前值;
3.breakpoints显示所设置的断点,右键点击列表中的断点,选择Hit Count可以选择使其跳转到第几次执行的时候;
4.debug框中显示每次断点的情况;
5.Run选择列表中有一个remove all breakPoints,清除所有断点;
6.suspend thread(暂停线程)suspend VM(暂停虚拟机)(?)
1.条件断点:conditional 可以添加一个boolean类型的条件来决定断点是否被跳过。如果条件为真,在断点处程序将停止,否则断点被跳过,程序继续执行,
2.异常断点:J!按钮添加异常断点,可以选择异常类型暂停程序
3.观察点:允许当一个选定的属性被访问或者被更改的时候程序执行暂停,并进行debug。最简单的办法是在类中声明成员变的语句行号左边双击,就可以加入一个观察点;(access:进入,访问;modification:修改)(局部变量不能作为观察点?)
4.查看变量:在选中的变量上使用Ctrl+Shift+d 或者 Ctrl+Shift+i可以查看变量值,另外我们还可以在Expressions View中添加监视。
5.改变变量:我们可以在Debug的时候改变其中变量的值。在Variables View中可以按下图所示操作。
6.在Main方法中停止
在Run/Debug设置中,我们可以按如下图所示的启用这个特性。程序将会在main方法的第一行停住
7、进入、跳过、返回
其实这个技巧是debug最基本的知识。
- F5-Step Into:移动到下一步,如果当前的行是一个方法调用,将进入这个方法的第一行。(可以通过第九条来排除)
- F6-Step Over:移动到下一行。如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。
- F7-Step Return:继续执行当前方法,当前方法执行完毕的时候,控制将转到当前方法被调用的行。
- F8-移动到下一个断点处。
![](https://i-blog.csdnimg.cn/blog_migrate/8fd73f73f3069ddf90e864eaf7cd3f20.png)
8.
8、Drop to frame
这个功能非常酷,是我第二个非常喜欢的功能,Drop to frame就是说,可以重新跳到当前方法的开始处重新执行,并且所有上下文变量的值也回到那个时候。不一定是当前方法,可以点击当前调用栈中的任何一个frame跳到那里(除了最开始的那个frame)。主要用途是所有变量状态快速恢复到方法开始时候的样子重新执行一遍,即可以一遍又一遍地在那个你关注的上下文中进行多次调试(结合改变变量值等其它功能),而不用重来一遍调试到哪里了。当然,原来执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记录)。
![](https://i-blog.csdnimg.cn/blog_migrate/cc2573c38389705e5dbcdce46c9f5734.png)
Step 过滤
当我们在调试的时候摁F5将进入方法的内部,但这有个缺点有的时候可能会进入到一些库的内部(例如JDK),可能并不是我们想要的,我们可以在Preferences中添加一个过滤器,排除指定的包