900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > IDEA的断点调试(DEBUG)

IDEA的断点调试(DEBUG)

时间:2024-08-07 08:19:40

相关推荐

IDEA的断点调试(DEBUG)

文章目录

IDEA的断点调试(DEBUG)一. DEBUG界面主要按钮二. DEBUG常用的四种方式2.1. 行断点2.2. 方法断点2.3. 属性断点2.4. 异常断点2.5. 临时行断点 三. 变量区与变量跟踪3.1. 动态改变变量值3.2. 断点条件设置 四. 计算表达式4.1 查看方法返回值4.2 设置变量 五. 多线程调试六. 远程调试七. DEMO地址

IDEA的断点调试(DEBUG)

一. DEBUG界面主要按钮

Show Execution Point:回到当前激活的断点处。效果:若你鼠标现在在别的页面/别的类上面,点击它快速“归位”Step Over步过:也叫单步调试,一行一行往下走,若这一行是方法也不会进入里面去。这个应该是平时使用得最多的按钮了,没有之一。Step Into步入:进入方法体内部。这里的方法指的你自定义的方法or三方库的方法,不会进入到JDK官方的方法里(如System.out.println()这种它是不会进去的)Force Step Into强制步入:能进入任何方法,包括JDK的。一般查看底层源码才会用到它Step Out步出:它是搭配(Force) Step Into一起使用的,当通过step into进入到方法体内部想出来时,一般有两种方案:单步调试慢慢出来,另一个就是step out(推荐)Drop frame:回到当前方法的调用处,同时上下文内所有的变量的值也回到那个时候。该按钮能够点击的前提条件是:当前所处的方法有上级方法,如果你是main方法里,那么按钮就是灰色喽Run to Cursor运行到光标处:你想要代码在哪里停一下,就把光标放在哪就成。Evaluate Expression表达式计算器:看图标就是个计算器嘛,所以你可以在这里执行任何合法的表达式Trace Current Stream Chain跟踪当前Stream流:只有代码停在Stream流语句上,此图标才点亮可以被点击。

Resume Program:恢复程序。当断点激活时程序“停止”了,点击这个按钮就是恢复的意思。

View Breakpoints:打开断点管理窗口。

Mute Breakpoints:作用是让所有断点变为灰色,也就是说让它们失效。它是一个批量操作,操作对象是所有断点,而不可针对于某一个。

Get Thread Dump:拿到当前线程的dump,可以查看到当前线程的状态。

不显示类库的方法,只显示你自己写的方法。

智能步入:自动定位到当前断点行,并列出需要进入的方法。如果只有一个方法,则直接进入,类似Force Step Into。

二. DEBUG常用的四种方式

2.1. 行断点

Breakpoint hit message:断点激活时输出提示日志Stack trace:断点激活时输出程序调用栈信息Evaluate and log:选择需要输出计算表达式的值。你可选择当前可达的变量

2.2. 方法断点

Emulated:仿真。作用:提高调试性能

Method entry:进入方法时激活断点

Method exit:出去方法时激活断点

2.3. 属性断点

Filed Access:读取此属性时(写入时不管)Filed modification:写入此属性时(读取时不管)

2.4. 异常断点

Catch excetion:只有当你自己try-catch了这个异常才会激活断点Uncatch excetion:只有当你自己不try-catch时才会激活断点

2.5. 临时行断点

走一次就会消失的行断点

三. 变量区与变量跟踪

变量区:在此区域可以查看当前断点上下文范围内的所有变量值(即使不在本类内也可以点过去查看哦),包括static静态的。此区域里的变量IDEA会自动调用其toString()方法变量跟踪:重点关注某几个变量,就可以使用Watches

3.1. 动态改变变量值

通过setValue可以手动的设置变量值

3.2. 断点条件设置

当condition里的条件为真时该断点才会被触发

四. 计算表达式

4.1 查看方法返回值

4.2 设置变量

五. 多线程调试

首先把断点打在下图如示地方:

会发现在调用栈中,所有的线程都被挂起了

把断点改为只挂起当前线程

会发现只挂起了main线程,线程一和线程二正常跑完

当断点打在run方法中

在调用栈中切换线程是不消耗上下文的

六. 远程调试

第一步:让远程部署的那个应用支持远程调试,也就是暴露远程调试端口。方式方法为在应用启动时加上对应的JVM参数即可

第二步:用IDEA创建一个remote运行配置,填上远程主机的ip + 暴露的调试端口即可

七. DEMO地址

/uprayup/debug-demo.git

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。