概述
- 程序有问题,调试少不了,想到更好的解决问题,就需要熟练的使用调试技巧。
本地debug
1.介绍
-
以下看看idea调试面板的相关按钮
-
1.
Step Over(F8)
,下一步,如果遇到方法,不会进入方法内部 -
2.
Step Info(F7)
,遇到方法时,进入方法内部,仅进入本地自己编写的方法 -
3.
Force Step Info(Alt + Shift + F7)
,遇到方法时,进入方法内部,本地方法或者是依赖jar中的方法等等 -
4.
Step Out(Shift + F8)
,跳出当前方法 -
5.
Evaluate Expression(Alt + F8)
,打开表达式窗口 -
6.
Resume Program(F9)
,如果之后还有断点,直接跳到下一个断点,否则直接运行到程序结束 -
7.
Stop(Ctrl + F2)
,结果调试 -
8.
View Breakpoints(Ctrl + Shift + F8)
,打开断点配置窗口 -
9.
Mute Breakpoints
,禁用断点
2.示例
-
说明:以下均以快捷键的方式操作,大家可以看看介绍里的按钮对应的快捷键
-
2.1以debug模式运行以下代码,当前停留在第4行
-
2.2按F8执行下一步,一直执行到第6行,然后按F7进入方法内部
-
2.3按Shift + F8跳出方法,然后再按F8执行到下一步
-
2.4发现此时c变量的值为6,然后按Alt + F8打开表达式窗口,将c的值修改为8
-
2.5 此时执行停留在第7行代码,按Alt + Shift + F7进入
System.out.println
方法内部
public void println(int x) {
synchronized (this) {
print(x);
newLine();
}
}
- 2.6按F9直接结束调试,发现控制台打印出c的值为修改后的8
远程debug
-
1.选择Edit Configurations,打开窗口
-
2.点+号,选中Remote配置
-
3.指定远程主机
host
,port
,以及对应的本地代码模块
-
4.以上边绑定的5005端口为例,远程jar添加启动参数
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n
,运行远程jar
java -jar -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n remote-demo.jar
-
5.本地代码打断点,然后以debug方式启动