君子藏器于身,待时而动。——《周易》

今天写写如何debug,开发中Debug基本是每个开发者最得力的技巧

首先我们需要以Debug模式启动

image-20201014200851006

启动之后我们在需要调试的地方打断点

image-20201014200939815

然后程序运行到这里来的时候就会被拦截住

image-20201014201018224

很多人一看这个就直接懵了,这么多按钮是干嘛的?

我们如果要让程序执行下一步,我们就可以点击步过

image-20201014202511621

点击之后我们可以看到程序执行到下一步了

image-20201014203158492

我们可以看到上一步我们方法执行后user的结果

点击下面user的左箭头

image-20201014203250269

看到了我们user的信息

image-20201014203308653

除此之外,在上面也能看到

image-20201014203340092

我们就可以一直这样下一步去查看我们程序执行的过程

我们如果想要放开程序,让程序恢复正常

就可以点击恢复按钮

image-20201014203515403

点击之后程序就恢复正常了,如果我们需要跳一大步时也可以点这个恢复,但需要打一个断点

比如我现在需要从68行跳到72行

就可以在72行打个断点

image-20201014203646059

然后点击恢复程序

就可以看到程序执行到72行来了

image-20201014203713124

如果我们需要进入这个方法内部,我们则可以点击步入

image-20201014203801364

然后就到spring的源码这里了

我们如果要出来

可以直接点步出

image-20201014204146387

点击步出后就到了实现类了

image-20201014204208184

我们可以继续在实现类中打断点

然后点击恢复程序

image-20201014204514307

可以看到我们的程序执行到了这里来

当然我们也可以悬停到上面的参数

此时我们可以点击这个+

image-20201014205159955

可以看到打开了一个弹窗

image-20201014205231204

例如还有就是我们可以进行表达式计算

image-20201014205401667

点击后可以在里面修改,然后评估结果

image-20201014205540875

我们还可以右键代码或者点下面的按钮,运行到光标处

image-20201014205724378

如果我们程序跑过了,我们可以点击丢帧按钮

image-20201014211101280

比如我现在断点运行到下方72行,我想让程序回到67行

image-20201014211235815

点击丢帧后再次点击恢复程序可以看到程序回到了上个断点去

image-20201014211300000

但这样会导致我们的参数值丢失

image-20201014211427759

还有我们的断点可以设置条件

只需要右键我们的断点

image-20201014205849994

image-20201014205910865

如果我们的条件不满足就不会停住

点击这个按钮可以查看我们之前打的断点

image-20201014210126841

image-20201014210145323

我们还可以启用和停用断点

image-20201014210232576

还可以添加或移除观察点

image-20201014210608866

点击后就可以添加到我们下方的变量区观察

image-20201014210703936

也可以右键下方的这些变量移除

image-20201014210730152

我们还可以在左边帧区域点击右键进行一些操作

image-20201014210857817

这就是Debug的基本姿势了