idea-debug失灵问题小记
时间:2020年10月10日
问题描述:
idea启动了3个服务A、B、C;
C服务调用了A服务,A服务pom依赖了B的代码;
debug断点设在了B代码上;
然后看B服务也没有设置断点通过,但是进程就是走不到B代码的断点上;
发现,由于A服务的断点设置成通过了:
;
所以导致进程没有停在那个断点上!
可能的解释:
你想研究HashMap源码,可以把断点打在你正在运行的项目依赖的rt.jar的HashMap.class文件上。
同理,此时请求A服务器,A服务pom依赖了B的代码,按道理会有一个B的jar包在A服务器中;你把断点打在这个B的jar包的某个class文件上,
自然是正确的;但是由于maven的友好设计,本地开发时,你并不需要每次都麻烦的将B项目代码打成class的jar包放到A里面,而是B的改动
都会同步到A那儿,所以你此时在B的代码上打断点,其实是打在了正在运行的A服务器上;即使B服务器也启动了,断点并不属于B服务器,
除非这个请求是请求B服务器的,断点才会属于B服务器;
综上所示,设置A服务器所有断点通过,请求A服务器,进程自然不会停留在任何A服务器的断点上;
结论:
如果启动了多个服务,发现断点失效,可能是由于你设置断点通过了;
不想去理清各个服务之间的关系,把所有的服务的断点通过设置为不通过。