IDEA中Debug技巧

Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常所发生的位置,以及在运行过程中参数的变化。

Debug界面

以下为IDEA2022.1.3版本界面:
在这里插入图片描述
图解说明:

  • Debug模式启动 方便随时调试代码
  • 设置断点 在代码行号处单击左键,或快捷键【Ctrl+F8】在鼠标焦点行设置/取消断点
  • Debug窗口 请求到达第一个断点后,激活Debug窗口
  • 调试按钮 Debug模式过程中调式操作,总共有8个按钮,鼠标悬停在按钮上可查看对应的快捷键
  • 服务按钮 快捷操作,可查看所有断点,禁用断点等
  • 方法调用栈 显示调试过程中线程经过的调用,勾选【Show All Frames】不会显示其他类库的方法
  • 变量区 可查看当前方法当前断点前的所有变量
  • 监视区 查看变量,可将变量区的变量拖到监视区查看

基本用法

服务按钮

服务按钮从上到下依次说明:

  • Rerun ‘xxx’ 关闭程序重新运行。快捷键【Ctrl+F5】
  • Modify Run configuration 修改运行时配置信息
  • Resume Program 恢复程序,即调到下一处断点,没有断点则结束整个流程。快捷键【F9】
  • Pause Program 暂停程序
  • Stop ‘xxx’ 关闭程序。快捷键【Ctrl+F2】
  • View Breakpoints 查看所有断点。快捷键【Ctrl+Shift+F8】
  • Mure Breakpints 取消或重设断点

功能按钮

功能按钮从左往右依次说明:

  • Show Execution Point 光标重新定位到当前断点处。快捷键【Alt+F10】
  • Step Over 当前方法内一行一行往下走,不会进入到行中方法内容。快捷键【F8】
  • Step Into 当前方法内一行一行往下走,遇到行中方法就进入该方法内部,但不会进入官方库方法内。快捷键【F7】
  • Force Step Into 当前方法内一行一行往下走,遇到行中方法就进入该方法内部,包括官方库方法内。快捷键【Alt+Shift+F7】
  • Step Out 从步入的方法内退出到该方法调用处,此时方法已执行完毕,只是没有赋值。快捷键【Shift+F8】
  • Run to Cursor 运行到光标处,此时不需要打断点。快捷键【Alt+F9】
  • Evaluate Expression 计算表达式。快捷键【Alt+F8】
    Trace current Stream chain Stream 跟踪调试窗口

变量查看

  1. 在IDEA中,参数所在的行后面会显示变量的值
    在这里插入图片描述
  2. 光标悬停到参数上,显示当前变量信息
    在这里插入图片描述
  3. 在变量区里查看,显示当前方法中当前断点前所有变量的信息
    在这里插入图片描述
  4. 在监视区中查看变量数据(可直接从变量区拖变脸到监视区)
    在这里插入图片描述

查看所有断点

点击【服务按钮】中的View Breakpoints可查所有断点。快捷键【Ctrl+Shift+F8】
在这里插入图片描述
断点分类

  • Java Line Breakpoints
  • Java Exception Breakpoints
  • JavaScript Exception Breakpoints
条件断点

选择断点所在行,在断点图标右键勾选Condition或在【Breakpoints】窗口中勾选Condition,然后输入框中输出条件参数。Debug模式启动程序后,断点在参数条件成立的时候成立。
在这里插入图片描述

打印堆栈信息

在【Breakpoints】窗口中的log中选中Breakpoint hit message(断点触发信息)和Stack trace(堆栈信息),可以看到方法中的具体调用堆栈信息。
在这里插入图片描述

添加日志打印

在【Breakpoints】窗口中的选中Evaluate and log,然后在下面输入框中输入待打印的日志。
在这里插入图片描述
在这里插入图片描述

异常断点设置

在【Breakpoints】窗口的左上角,点击【+】,选择Java Exception Breakpoints。在弹出框中输入要断点的异常类。
在这里插入图片描述
在这里插入图片描述
例:添加一个空指针异常断点后,程序出现空指针异常后,自动定位到空指针异常行
在这里插入图片描述

表达式解析

点击【功能按钮】上的Evaluate Expression,填写表达式,双击或点击【evaluate】可计算结果。通常是条件判断分支后可实时解析出程序最终走哪个分支。
在这里插入图片描述
在这里插入图片描述

智能步入

一行代码中有多个方法,如何仅选择某一个方法进入。Step IntoForce Step Into进入到方法按照顺序依次执行。智能步入(Smart Step Into)则可选择方法进入。快捷键【Shift+F7】
在这里插入图片描述

中断Debug

中断Debug即中断请求,不再走后续剩余流程(强制返回方法返回值避免后续的流程)。中断Debug不需要关闭服务重新启动程序。

回退Debug

调试时,不用重新发起新的请求而直接重走流程。其实就是回退到上一个方法调用的开始处。
回退的方式有两种:

  1. Drop Frame 按调用的方法逐步回退,包括第三方类库里的方法
  2. 调用栈方法上选择要回退的方法 右键选择Drop Frame,回退到该方法的上一个方法调用处,再按【F9】即可进入方法断点处。

参考博客:IDEA的高级Debug技巧
参考视频:IDEA 断点调试高级玩法

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在开发过程遇到问题并需要进行调试时,以下是一些常用的idea debug技巧: 1. 使用断点:在代码设置断点,以便在程序执行到指定行时暂停。这样可以逐行查看代码执行过程,观察变量的值,并在需要时进行修改。 2. 日志输出:在关键的代码位置添加日志输出语句,以便在程序运行时查看相关信息。可以使用日志库,如Log4j,来记录和管理日志信息。 3. 条件断点:除了在指定行设置断点外,还可以设置条件断点。条件断点会在满足特定条件时触发暂停,这对于查找特定条件下的问题非常有帮助。 4. 使用调试工具:IDEA提供了强大的调试工具,可以逐步执行代码,查看变量和对象的状态,并提供了一些高级功能,如表达式求值、线程调试等。 5. 单元测试:编写单元测试用例可以帮助你更好地理解和验证代码的正确性。通过运行单元测试,你可以快速定位代码的问题,并进行修复。 6. 查阅文档和资料:如果遇到问题无法解决,不妨查阅相关技术文档和资料。通常,其他开发者可能已经遇到类似的问题并给出了解决方案。 7. 与他人交流:在遇到难以解决的问题时,与其他开发者讨论可能会帮助你找到解决方案。可以向社区或论坛提问,或是找到经验丰富的同事寻求帮助。 这些是一些常用的idea debug技巧,希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值