idea中使用debug
起因
今天远程调试排查bug,所以就写一下idea中如何使用debug
介绍
文章图片
在你要断点的地方,点一下,会出现红色的点。
文章图片
以debug模式启动,run模式是无法断点的。
文章图片
成功断点就是这种情况。
文章图片
右击红点出现配置界面
文章图片
取消enabled的打勾,则无法断点。all模式,则断点后,其他线程均停止。thread模式则只有当前线程断点,其他线程不受影响(有时候本地和前后端联调,我以前不知道这个all,thread的时候,贼尴尬,我调试我自己的代码,前端就和我说为什么他连我的后端,没反应。搞得我起两个一模一样的程序,所以现在我调试,一般就是默认thread模式)。
文章图片
修改成thread模式,然后选择设置成默认模式。
文章图片
condition为条件模式,只有符合条件的时候才会被断点住,表现为断点出右下角有个?。这个功能也很实用。要知道程序有很多会用的for循环处理的地方,如何快速找到for循环里面哪里有问题,就靠这个了。
文章图片
上面调试过程中比较重要的按钮,f7,f8和drop frame最重要,f7是进入断点方法内部
文章图片
文章图片
drop frame是移除一个栈调用,回到之前的断点方法
文章图片
f8是不进入方法内部,在同一层级代码逐步向下
文章图片
在值处可以设置断点值,通过修改值以达到测试的效果
文章图片
文章图片
文章图片
远程调试
【idea中使用debug】上面都是断点调试中的基础,接下来讲下远程调试。主要是有一天测试环境有问题,开发环境没有问题,所以为了排查测试环境的问题是什么,所以需要远程调试。
文章图片
在服务器端,运行java -jat时,加入虚拟机参数,开启远程debug端口(我开启了5555)
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5555
文章图片
打开服务器部署的代码程序,新增remote
文章图片
选择舒输入,服务器地址,端口(5555),还有程序路径,接下来就可以快乐的远程调试了。再测试环境的操作,都能被本地断点住。
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售