如何用IDEA调试BUG的几种方法


发布日期:2024-01-27 06:47    点击次数:82


乐动体育

最近小明的bug有点多,忙的连王者荣耀皆顾不上玩了,导致当今不得不抽点时辰计较一下看成面前大多Java顺序员迷惑器用的IDEADEBUG功能,以耕种后果。

一、条款断点

场景:咱们在遍历某个集中,盼望顺序在逍遥某些预设条款时停住,比如:沐芳本分在课堂上点名,需要在点到小明的时候暂停阐发一下是否有东说念主在帮小明答“到”!

那沐芳本分不错这样:

右击断点控制的小红点(断点),弹出头板,在Condition这里填入暂停条款,这样调试时,当顺序逍遥条款时就会稳稳地停在student="小明"的位置。

二、回到"已往"

场景:东说念主非圣贤,孰能无过。在日常迷惑中,公共皆有手残的时候,比如在调试一个业务逻辑比拟复杂,有多个方法嵌套时,一不抑止手抖,断点已往了,这该怎么办?

1、流光耀时活动开始时间是10月28日0:00,每天完成任务获得流光发条,可以不断刷新奖励,最高可得史诗皮肤。

这天,沐芳本分如往常相通在上课前点名,当点到小明的时候,不争光的小明在暗暗看可爱的妹子,莫得提神听,当反馈过来时,仍是错过了答到!尽头悲怆(朱颜祸水啊),这时小明就不错借用大雄的机器猫进行时光穿梭:

不雅察上图,咱们看到,按照点名法则,当今沐芳本分点名仍是轮到小红,小明仍是错过答到,机器猫不错这样匡助小明:点击上图红色框框圈中的DropFrame图标(要是存在多个方法的嵌套调用,不错多点几下),就这样,小明穿越了,莫得错过此次的答到:

tips:这个按钮之是以叫作念DropFrame,是因为JVM里面是以栈帧为单元来保存线程的运劳动态,DropFrame直译过来等于扔掉面前运行的栈帧,回到上一帧的位置,这样就竣事了穿越。

三、多线程调试

终于本分点名控制了,当今不错辽远上课了。到了同学们最爱的本分发问,同学们抢答的重要。

Asweknow当咱们启动多个线程时,哪个线程内的顺序先实施,完竣靠CPU的情怀(爸爸相通的存在),乐动体育|乐动体育APP下载|乐动体育官网这样就会形成一个问题:无法像单线程那样按果真施法则debug。风景等于你只管打断点,线程之间不乱跳算我输,顺序例如如下:

本分提议问题后,四个同学运行抢答:

这样多同学抢答,让遵从岗亭多年的沐芳本分合计再这样下去课堂可能会有点紊乱:但这并难不倒从业多年的沐芳本分,她按如下图所示:在断点的位置上右击,遴选Thread,就不错有标的地追踪某一位同学的抢答情况(一切皆在掌合手之中)。

四、云尔调试

公共能看到这里,小明不得不给公共先容一个装X的技巧:云调试。即本机无谓启动样式,只有本机的源代码与云尔劳动器运行的jar包匹配,就不错在本机奏凯云尔调试劳动器上的代码!大开姿势如下:

云尔样式启动时,先允许云尔调试

当今大多皆是SpringBoot样式,因此咱们在云尔劳动器上运行一个jar包时

java-server-Xmsm-Xmxm-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=-jarxiaoming.jar

这里起作用的中枢敕令等于

-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=

云尔调试从时代上讲,等于在本机与云尔劳动之间修复scoket通信,是以本隐私不错造访到云尔劳动的端口。

乐动体育

在idea中建立云尔调试

接下来咱们就不错辽远调试了,调试样貌和腹地运行劳动调试无差,不信你发起一个苦求,并在对应的逻辑代码中打个断点试试?

五、临时实施抒发式

再一个等于调试时,咱们还不错临时实施一些抒发式,点击红色框框选中的图标,然后输入你念念实施的抒发式,如下所示:

公共不错看到,小明心灵是何等脆弱,因为无法直面我方的实质年岁,再将近取得果真年岁是,暗暗的减去了年,是以他实质年岁长期为岁(手动滑稽)。

六、修改革量的运行值

虽然,要是调试时,念念动态修改革量的值,也很容易,在变量上右击,然后遴选SetValue,比如浅近奸猾的鼎新小明的年岁为……

以上乐动体育网址入口,这等于小明近期精采的IDEA的DEBUG技巧,但愿不错匡助到公共。善用上述调试技巧,敬佩公共撸起代码来会愈加有嗅觉,更多有关IDEA调试BUG内容请搜索剧本之家以前的著述或不绝浏览底下的有关著述但愿公共以后多多撑持剧本之家!

您可能感兴味的著述:IDEA.使用LeetCode插件运行并调试腹地样例的方法详解idea无法debug调试的惩办决策IDEA竣事云尔调试法子详解在IntelliJIDEA中多线程并发代码的调试方法详解如何期骗grep-console插件使Intellijidea透露多神色调试日记IntellijIDEADebug调试技巧(小结)你不知说念的IDEADebug调试小技巧(小结)IDEA调试技巧条款断点竣事法子详解