目录
一、idea远程debug原理
远程调试,需要调试服务器上的程序时,远程调试就显得非常有用。JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的协议联系,本地的Java文件在远程JVM建立联系和通信。
- 本地代码监听远程调试端口,在在本地需要调试代码打下断点。
- 访问远程服务。
- 远程服务触发idea编辑器本地代码,本地代码进入debug状态。
- 在本地调试代码,解决代码bug。
简单流程如下:
二、创建一个springboot工程
之前已经介绍过很多创建springboot工程的文章了,可以参考这篇文章:如何创建一个springboot工程
三、IDEA远程调试配置
1,打开idea,顶部菜单栏选择Run-> Edit Configurations,进入下图的运行/调试配置界面。
2,点击左上角'+'号,选择Remote。分别填写右侧三个红框中的参数:Name,Host(想要指定的远程调试端口)。
3,点击界面右下角应用按钮即可。
四、服务端开始debug模式
五、idea启动远程调用
程序上打上断点,点击运行。调用服务器端运行的系统程序,系统自动进入断点。
六、启动远程调试参数解释
- -Xdebug:通知JVM工作在调试模式下
- -Xrunjdwp:通知JVM使用(java debug wire protocol)来运行调试环境。参数同时有一系列的调试选项
- transport:指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另外dt_shmem指用共享内存方式,其中dt_shmem只适用于窗口平台.server 参数是指是否支持在服务器模式的虚拟机中。
- server参数是指是否支持在server模式的VM中。
- onthrow:指明当产生该类型的异常时,JVM就会中断下来,进行调式该参数任选。
- launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选。
- suspend指明,是否在调试客户端建立起来后,再执行JVM。
- onuncaught(= y或n)指明出现未捕获的异常后,是否中断JVM的执行。