首页 > 技术文章 > idea-debug失灵问题小记

seeall 2020-10-10 17:29 原文

时间: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服务器的断点上;

 

结论:

如果启动了多个服务,发现断点失效,可能是由于你设置断点通过了;

不想去理清各个服务之间的关系,把所有的服务的断点通过设置为不通过。

 

推荐阅读