使用 intellij idea 進行遠程調試

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

 原理: http://blog.csdn.net/alli0968/article/details/42176721

1. tomcat 7.0.5 啓動支持調試

 

新建文件 setenv.bat

 

Java代碼  收藏代碼
  1. SET CATALINA_OPTS=-server -Xdebug -Xnoagent   
  2. -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000  

 

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

 

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

 

Java代碼  收藏代碼
  1. Listening for transport dt_socket at address: 8000  

 

3. idea remote debug 配置

 

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

 

 

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

 

 

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

 

 

 

 

點擊 ok 關閉設置窗口

 

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

 

 

 

 

 

 

調試窗口輸出

 

Java代碼  收藏代碼
  1. Connected to the target VM, address: 'localhost:8000', transport: 'socket'  

 

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

 

5.啓動調試

 

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

 

 

 

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

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