IntelliJ IDEA Debug实战
① 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点。
② 调试按钮:调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能
③ 服务按钮:可以在这里关闭/启动服务,设置断点等。
④ 方法调用栈:这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。
⑤ Variables:在变量区可以查看当前断点之前的当前方法内的变量。
⑥ Watches:查看变量,可以将Variables区中的变量拖到Watches中查看
断点
断点可以分为普通断点、条件断点、多线程断点。
条件断点
通过设置断点条件,在满足条件时,才会停在断点处,否则直接往后运行。
操作:在普通断点的小红点上右键就会出现如下对话框,在Condition中输入条件即可。
条件断点右下角是有一个小问号的。
注:只有当i == 300条件成立的时候断点才会生效。
多线程断点
在多线程环境下调试代码,需要把断点挂起级别修改为Thread。
调试按钮
按钮 | 说明 |
---|---|
![]() |
(Alt + F10):如果你的光标在其他行或其他页面,点击这个按钮可以跳转到当前代码执行的行。 |
![]() |
(F8):步过,一行一行得往下走,如果当前行是一个方法,不会进入方法。 |
![]() |
(F7):步入,如果当前行是方法,会进入方法内部,一般用于进入自定义方法,不会进入官方类库的方法。 |
![]() |
(Alt + Shift + F7):强制步入,能进入任何方法,查看顶层源代码的时候可以用这个进入官方类库的方法。 |
![]() |
(Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已经执行完毕,只是还没有完成赋值。 |
![]() |
回退断点。 |
![]() |
(Alt + F9):运行到光标处,可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。 |
![]() |
(Alt + F8):计算表达式。 |
唯一需要演示的可能就是计算表达式了。
比如:result是调用某个方法的返回值,这时候我们可以通过计算表达式改变变量的值,就可以很方便的测试各种返回值的执行结果了。
计算表达式中不仅能修改变量值,还能自定义变量,调用方法自定义方法等。
服务按钮
按钮 | 说明 |
---|---|
![]() |
重新运行程序。 |
![]() |
跳到下一个断点处。 |
![]() |
暂停程序。 |
![]() |
停止服务。 |
![]() |
查看所有断点。 |
![]() |
让所有断点失效,断点颜色会变成灰色。 |
方法调用栈
能够清晰的看到方法的调用轨迹。
方法调用栈也是一个栈结构,先进后出,从上图就能很明显的看出在Main这个类的amin方法第12行调用了a方法,在a方法的16行调用b方法。
断点回退
假设我们现在要回退到a方法的第16行我们只需要把栈顶方法drop掉。如下:
这样断点就会回到方法调用栈的前一个方法(a方法的第16行)。
自定义返回值
右键选择Force Return
a方法返回的是String类型在输入框输入一个要返回的值就可以了
查看变量
查看变量的几种方式
- 在IDEA中,参数所在行后面会显示当前变量的值。
- 光标悬停变量,显示当前变量信息,点击
+
打开详情。
展开详情如下:
- 在Variables中查看,这里显示当前方法里的所有变量。
- 在watches中,点击
+
输入要查看的变量,或者可以从Variables里拖到Watche里查看。