idea中使用debug

起因

今天远程调试排查bug,所以就写一下idea中如何使用debug

介绍

idea中使用debug_第1张图片
在你要断点的地方,点一下,会出现红色的点。
idea中使用debug_第2张图片
以debug模式启动,run模式是无法断点的。
idea中使用debug_第3张图片
成功断点就是这种情况。
idea中使用debug_第4张图片
右击红点出现配置界面
idea中使用debug_第5张图片
取消enabled的打勾,则无法断点。all模式,则断点后,其他线程均停止。thread模式则只有当前线程断点,其他线程不受影响(有时候本地和前后端联调,我以前不知道这个all,thread的时候,贼尴尬,我调试我自己的代码,前端就和我说为什么他连我的后端,没反应。搞得我起两个一模一样的程序,所以现在我调试,一般就是默认thread模式)。
idea中使用debug_第6张图片
修改成thread模式,然后选择设置成默认模式。
idea中使用debug_第7张图片
condition为条件模式,只有符合条件的时候才会被断点住,表现为断点出右下角有个?。这个功能也很实用。要知道程序有很多会用的for循环处理的地方,如何快速找到for循环里面哪里有问题,就靠这个了。
idea中使用debug_第8张图片
上面调试过程中比较重要的按钮,f7,f8和drop frame最重要,f7是进入断点方法内部
idea中使用debug_第9张图片
idea中使用debug_第10张图片
drop frame是移除一个栈调用,回到之前的断点方法
idea中使用debug_第11张图片
f8是不进入方法内部,在同一层级代码逐步向下
idea中使用debug_第12张图片
在值处可以设置断点值,通过修改值以达到测试的效果
idea中使用debug_第13张图片
idea中使用debug_第14张图片
idea中使用debug_第15张图片

远程调试

上面都是断点调试中的基础,接下来讲下远程调试。主要是有一天测试环境有问题,开发环境没有问题,所以为了排查测试环境的问题是什么,所以需要远程调试。
image.png
在服务器端,运行java -jat时,加入虚拟机参数,开启远程debug端口(我开启了5555)
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5555
idea中使用debug_第16张图片
打开服务器部署的代码程序,新增remote
idea中使用debug_第17张图片
选择舒输入,服务器地址,端口(5555),还有程序路径,接下来就可以快乐的远程调试了。再测试环境的操作,都能被本地断点住。

你可能感兴趣的:(java)