[目录]
调试器设置
文件
-设置
-调试器
调试方法
添加/取消断点
鼠标放在上图中红点处点击,可以添加/取消断点
开始调试
添加断点后,点击工具栏上的调试
图标,开启调试
按 F7
进入下一步,从下图可知,已经计算出了变量 i
的值
给断点设置条件
在断点上邮件,可以在弹窗的条件
处设置条件
这里我设置了一个条件 i==90
多线程的情况,这里还可以给某个线程设置断点,选择
线程
。
输入条件Thread.currentThread().getName().equals("线程名称")
在这个断点的下面再添加一个断点,重新启动调试,调试的选中行直接跳到了下一个断点处,说明这个条件没有满足
也可以点击 More
链接,设置更多的条件
临时窗口
可以查看,设置变量的值
光标放在要设置的行上,或选中要设置的变量 Alt
+ F8
这里我设置 i=100
F9
进入下一个断点,可以看到结果发生了变化
在新版 IDEA 中,可以在界面中直接设置变量值
进入下一个断点
F9
进入下一个断点
调试后,按 F9
会直接进入第8行的断点
调试详情
不想往下执行了,直接跳出
找到对应的帧,右键
-强制返回
相关快捷键总结
快捷键 | 说明 |
---|---|
F7 |
进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 |
F8 |
进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 |
F9 |
恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 |
Alt + F8 |
选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 |
Alt + F9 |
运行至光标处 |
Alt + F10 |
定位到断点 |
Ctrl + Alt + F9 |
强制运行至光标处 |
Ctrl + F8 |
设置光标当前行为断点,如果当前已经是断点则去掉断点 |
Shift + F7 |
智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
Shift + F8 |
跳出,表现出来的效果跟 F9 一样 |
Ctrl + Shift + F8 |
查看断点 |
Alt + Shift + F7 |
进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入 |
Alt + Shift + F8 |
返回上一步 |
Alt + Shift + F9 |
选择 Debug |
Alt + Shift + F10 |
选择 Run |
解决调试步入源码的问题
2020年6月17日17:58:46 更新
问题描述
在之前的调试中,老是遇到一个问题。
比如下面的代码:
我只想运行程序之后,进入第一个断点,接着跑到方法括号末尾,就能够看到结果。
但实际情况往往是,执行到最后一个括号之后,执行的光标老是跑到一些其它地方,例如
步出之后,又跑到其它地方
接着又步出
进行了很多次步出,程序还是没有运行完,后来干脆放弃了,直接放弃调试模式,使用运行模式再调用一次接口看结果。
原因分析
断点步入了框架源代码里面去了。
问题解决
查看上面步入的源代码部分,看看是哪个包
看代码的最上方,要么是
package org.springframework.aop.framework.adapter;
要么是
org.apache.*
还有一些其它的。
在设置里面限制这些包的步入,文件
-设置
-构建,执行,部署
-调试器
-步进
设置限制下面两个包的步入
org.springframework.*
org.apache.*
应用
-确定
测试结果
再次启动调试,执行到方法最后的大括号之后,发现不再进入这些框架的源码里面了,结果也很快出来。
IDEA Tips:Debug跳转任意行
安装插件 Jump to Line
运行调试后会出现下面的箭头
想跳转到哪里,拖动即可。
IDEA 手动抛出异常
SpringCloud 项目 Server 调试无法运行和进入断点
问题描述
项目里面有 SpringCloud 项目。
平常情况下,正常运行代码,我都是
● 调试
- Server
,
● 调试
- Web
都可以正常运行,断点也都能进入。
但是突然某一时刻,就是上一分钟还正常,下一分钟,突然 Server
的断点就再也进不去了,也无法正常访问 Server
了。
需要
● 启动
- Server
● 调试
- Web
才可以正常跑。但是 Server
里面的断点,再也进不去了。
无论重启多少次都不行,非常不方便。
问题解决
突然某一天,我想到是否是因为 调试
- Server
时,进入了某个不为人知的断点,导致 Server
无法正常启动?
于是我打算把所有断点都删掉,快捷键:Ctrl
+ Shift
+ F8
,删除所有 Java行断点
重新启动
● 调试
- Server
,
● 调试
- Web
打上对应断点,都可以正常进入了。
stream 流 debug 调试方法