eclipse調試web項目的第三方jar

摘要:

   解決大多數人提供的解決方案,不生效的情況下,遇到的問題。

   提到的解決方法,可以說是全球唯一的。

在看問題解決方法之前,你已經看到了以下相關提示或者錯誤,也使用了相關命令

    a)Source not found,Edit Source Lookup Path

    b)mvn dependency:sources -DdownloadSources=true

    c)手動關聯源碼,Source Attachment

    d)嘗試各種即時反編譯器

問題症狀:

    使用各種方案,關聯源碼後,調試起來,仍然不順手,尤其是調試第三方框架的源碼即使進入到斷點了,可是實際上會跳轉到源碼標籤頁,無法實時打斷點

如果,你遇到的問題是上述描述的問題,苦苦尋求解決方法而不得,繼續往下看。

一、解決方法

1、正常配置web項目,使用tomcat插件進行啓動

1)使用tomcat插件配置好的項目如下圖,基本參數,就不細說了。


2)添加jvm參數

    切換到Main標籤旁邊的JRE標籤,添加jvm參數

-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

如圖

tomcat插件配置


3)啓動項目

    run項目,而非debug。添加的jvm參數,已經在監聽端口,達到類debug的效果,直接run項目


2、eclipse遠程調試,本地項目

      遠程調試,是調試遠程服務器上的應用的。在本方法裏面,遠程服務器在邏輯上是遠程應用,實際上是本地的應用。

1)打開Debug Configures標籤頁,配置遠程調試參數

    配置遠程項目對應的本地工程和填寫遠程的host和port。這一塊的配置也不細說了。


2) Debug項目

   點擊完Debug,項目的運行環境是這樣子的:待調試項目以run方式,在運行;遠程debug也在運行。

開始進行調試吧,項目依賴的jar,凡是關聯了源碼的,都可以進入到class視圖的斷點裏,可以實時打斷點。

二、相關問題說明

1、eclispe管理的文件圖標

a)Source not found,源碼未找到的時的圖標

b)未編譯源文件圖標

   顯示的jar包裏面的源碼,此時源碼並未和class關聯起來,是一種“未編譯”狀態,eclipse只是以源碼的形式顯示它。

這種文件顯示方式,如果預先在對應的class文件裏面,打了斷點,斷點可以進入,但是無法顯示斷點位置,也無法實時打斷點。

c)關聯了源碼的class文件圖標

    010,class文件顯示狀態,這類文件是eclipse管理的編譯後的文件的視圖,此時已經和源碼關聯了。這種顯示方式在debug模式下,纔可以實時打斷點。


三、問題分析

    初步分析,問題出在tomcat插件上。

單進程的應用,只要使用maven dependency:sources關聯源碼後,eclipse自帶的Class Viewer可以把源碼和class文件關聯起來,可以實時打斷點。

而tomact插件發佈的web應用,因爲類加載器的原因,導致eclipse無法很好的控制調試器。

以上現象是事實存在的,原因則是推測的。



vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

如果,你首次搜索就看到這個頁面,那麼祝賀你!
如果,你歷經千辛萬苦,搜索了整個互聯網,看到了這個頁面,同樣祝賀你!
我來了,你的世界就亮了。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章