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服務器的斷點上;

 

結論:

如果啟動了多個服務,發現斷點失效,可能是由於你設置斷點通過了;

不想去理清各個服務之間的關系,把所有的服務的斷點通過設置為不通過。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM