備忘:使用 intellij idea 進行遠程調試

以前都是很土得打 log ,發現一篇關於 java 調試器架構 ,以及 eclipse 上使用 的文章,在常用的 intellij idea 以及 tomcat 上調試成功,結合調用堆棧希望可以加快 ``how tomcat works`` 讀書進度。

 

1. tomcat 7.0.5 啓動支持調試

 

新建文件 setenv.bat

 

SET CATALINA_OPTS=-server -Xdebug -Xnoagent 
-Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

 

 放入 tomcat 下 bin/ 中(和 startup.bat)同級。

 

2. 點擊 startup.bat 啓動,控制檯輸出調試支持日誌表示成功配置:

 

Listening for transport dt_socket at address: 8000

 

3. idea remote debug 配置

 

打開已有的 web 類型項目,設置運行配置

 

 

找到 remote 子項,選擇新增配置

 

 

輸入項目名稱,端口設置 tomcat 配置的 8000,並選擇源碼所在模塊,調試模式爲 attach

 

 

 

 

點擊 ok 關閉設置窗口

 

4. 在源碼上設置斷點後,點擊調試按鈕

 

 

 

 

 

 

調試窗口輸出

 

Connected to the target VM, address: 'localhost:8000', transport: 'socket'

 

表示正常連上了遠端(localhost)服務器。

 

5.啓動調試

 

使用瀏覽器訪問對應服務器應用,啓動調試,運行到客戶端斷點時,就可以查看當前幀變量與堆棧信息了:

 

 

 

再進一步關聯 tomcat 源碼 則可以瞭解到請求在 servlet 容器中的一系列轉發過程了。

 

 

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