昨天下午在联调过程中,项目突然无法启动了,也不能说是无法启动了,就是 debug 变得非常慢,基本可以理解为无法启动,但是 run 直接运行一切正常,从 6 点开始调试到 7.30 才终于解决,期间各种办法都用到过,什么 clean install 全局重新编译了、清理 idea 缓存了,代码全部回滚了,但是都不好用,最后突然发现启动的时候右下角弹出来一个断点的错误,于是马上去看了下是不是有断点在,结果还真的发现了一个断点,但是我都不知道什么时候加上这个断点的。去掉断点以后,一切就都正常了,又从新把代码拷贝回来一套操作很是无奈。
- 为什么出现这种情况?
应该是点击的时候没注意,在方法上点击并且打上了一个断点导致了这个情况,而在同事电脑上没有出现这个问题的原因也清楚了,因为在同事电脑上上没有方法断点。 - Method Breakpoints 的问题跟系统是不是有关系 ?
在 windows 上解决了这个问题后,脑袋里就有了这个想法,Method Breakpoints 的问题在windows和mac上是不是都会出现,答案是肯定的,一旦有方法断点都会卡住。 - Method Breakpoints 的问题是不是只在接口方法中出现?
因为出问题的那个断点是在接口方法上,所以就有了这个想法,验证后也得到了答案,在实现类上打断点也会出现此问题。
idea 官方文档也有对次的说明
Note that using method breakpoints can slow down the application you are debugging.
使用方法断点会使得正在debug调试的程序变慢。
最后得到的结果就是,少用方法断点,也尽量不要在项目里打过多的断点,调试哪里就在哪里打上,调试完把断点去掉就好。 但是这次的断点我是真的不知道什么时候加上去的,因为印象中几乎没有加过断点,但是可能还是因为哪一个步骤疏忽了吧,以后注意点就好了。
到此为止,事件的起因、经过、结果都大致介绍完毕,至于最后这个答案,我觉得我不是特别满意,官方文档里也只是说了一下,这个做法会使debug变慢,但是更深层次的原因或者说原理还需要再去研究研究,现在依然在查一个我自己满意的答案。
------------ 转载自Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录