Debug操作技巧
Show Execution Point
将光标回到当前断点停顿的地方
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888446s9SRDG.jpg)
Step Over
执行当前行代码,并将运行进度跳转到下一行。
Step Into
进入到当前代码行的方法内部。
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888446RYU8fM.jpg)
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888447vOELZr.jpg)
Step Out
从方法内部出去
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888447SKHUDN.jpg)
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888448IKNB6u.jpg)
Force Step Into
强制进入Java自带方法的内部
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888448UCfFuz.jpg)
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888449TouyB1.jpg)
Run to Cursor
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888449CqKLam.jpg)
将光标定位到想到达的代码行
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888450YPQKwi.jpg)
点击Run to Cursor
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/16478884507LvjmT.jpg)
Drop Frame
丢弃当前虚拟机栈帧
初始:
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888450piIs1b.jpg)
进入方法:
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/16478884519yBDXC.jpg)
丢弃当前帧:
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888451g7ki3A.jpg)
也就是说,我们退回了上一步进入方法之前。
Evaluate Expression
可以用它来评估表达式
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888452TckR9w.jpg)
如 p.getName()等。
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/16478884522qRArk.jpg)
Force Return | 避免操作资源
我们在调试代码的时候中间出现了异常,但是我们又没有做异常捕获,稀里糊涂地把错误数据存到了数据库中,我们又需要将这些数据给删除,将数据库复原,才能达到之前我们需要的效果。
所以,接下来我们讲一讲如何避免操作资源,强制返回。
↓CloseCode↓
public static void saveResource() {
System.out.println("shit happens");
System.out.println("save to db");
System.out.println("save to redis");
System.out.println("send message to mq for money payout");
}
debug:
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888453GDV2TR.jpg)
我们发现程序出现了异常
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888453VkIDOc.jpg)
Force Return
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888454cMJf4j.jpg)
它会只打印shit happens,不会继续向下执行了。
![Debug断点调试常用技巧](/img.php?url=https://hzimgs.oss-cn-hangzhou.aliyuncs.com/uposs/2022_03/22/1647888454Z0HXdT.jpg)
Trace Current Stream Chain | Stream Debug
↓CloseCode↓
public static void streamDebug() {
// stream chain
Arrays.asList(1, 2, 3, 45).stream()
.filter(i -
相关阅读:
有哪些命令(命令的意思) 如何debug(debug命令大全) 如何telnet(telnet命令是干嘛的) 如何装win7系统(开不了机能进命令符) 如何运行cmd(cmd命令修复电脑)