debug技巧之本地调试

一、debug模式启动应用

这个还是很简单的,我相信只要不是手抖都不会点错。但是有时候我们会发现平时很快就启动好的应用,突然变得特别慢,好几分钟都启动不好 。一般出现这种情况的原因有可能是你将断点打在了方法上,这个IDEA官方也有说明,如下。

复制代码
Note that using method breakpoints can slow down the application you are debugging.
使用方法断点会使得正在debug调试的程序变慢。

解决办法有两个a. 找到方法上断点取消掉b. 如果断点不好找,直接找到IDEA的BreakPoints全部取消就好了

二、调试功能

  • Resume Program(继续程序):当程序处于暂停状态时,点击这个按钮会使得程序继续执行,直到下一个断点或者程序结束。

  • Step over(单步跳过):这个按钮允许你执行当前行的代码,但是不会进入当前行调用的任何方法内部。如果当前行调用了一个方法,那么这个方法的执行会"跳过",直接执行到这个方法的返回处。

  • Step into(单步进入):与 Step over 不同,Step into 会进入当前行调用的方法内部。如果当前行是一个方法调用,那么程序会暂停在这个方法的第一条可执行行。

  • Force Step into(强制单步进入):这个按钮允许你强制进入一个方法,即使该方法的源代码不可用(例如,它可能是一个第三方库的一部分)。通常,当尝试使用 Step into 进入一个没有源代码的方法时,IDEA 会忽略这个步骤。但是,使用 Force Step into 可以强制程序进入方法,即使没有源代码。

  • Step out(单步返回):当处于一个方法内部时,点击这个按钮会使得程序执行完当前方法的剩余部分,并在方法返回时暂停。这允许你快速退出当前的方法,返回到调用它的代码中。

这些调试功能对于理解程序的执行流程和调试程序中的错误非常有帮助。自己可以多试试。

三、 Evaluate Expression

这个功能是我用的最多的,非常好用,强烈推荐!!!

1. 它在哪?

进入debug后,代码区右键打开菜单

2. 它长啥样?

上面是输入框,下面是输出

3. 它有什么作用?

  • 查看变量值

  • 修改变量值

  • 执行方法

  • 查看复杂数据结构

  • 调试信息输出

  • ... ...

    不仅上面这些,它甚至可以写一段新的代码执行,我演示几个吧,不然没感觉。

(1)查看变量值
(2)执行方法
(3)新的代码块

四、小结一下

调试Java程序,用IDEA社区版挺方便的。设置断点的时候别太随意,否则启动程序会慢得跟蜗牛似的。用好单步调试,能帮你一步步看清楚程序是怎么跑的。还有那个表达式评估,简直就是调试时的万能钥匙,啥都能干。最后,记得多学多练,调试这门手艺,越磨越亮。

文章转载自: 不若为止

原文链接: https://www.cnblogs.com/wlovet/p/18182401

体验地址: 引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

相关推荐
0白露1 天前
关闭搜狗输入法右下角广告,可以适用于大多数应用系统通知的广告
windows·bug
一只自律的鸡2 天前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
Lichenpar3 天前
Springboot采用FastJson2作为MessageConverter时,配置的全局日期类型序列化转换BUG
java·开发语言·bug
Irene19914 天前
AI 找 bug 的局限性 和 Deepseek 优势明显
bug
癫狂的兔子4 天前
【bug】【Python】pandas中的DataFrame.to_excel()和ExcelWriter的区别
python·bug
癫狂的兔子5 天前
【BUG】【Python】【Spider】Compound class names are not allowed.
开发语言·python·bug
netkiller-BG7NYT5 天前
阿里云语音合成CosyVoice重大BUG被我发现了
bug
马猴烧酒.6 天前
【Mybatis出现bug】应为 <statement> 或 DELIMITER,得到 ‘id‘
java·bug·mybatis
请叫我大虾6 天前
发现一个jdk中ArrayList的小BUG
android·java·bug
离离茶6 天前
【笔记1-10】Qt bug记录:dockwidget通过raise在最前面显示,toolbar的拓展菜单失效
笔记·qt·bug