日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux java远程调试_[转]JPDA:Java平台调试架构(常用的远程调试方法)

發布時間:2024/10/12 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux java远程调试_[转]JPDA:Java平台调试架构(常用的远程调试方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文出處:http://www.javaeye.com/topic/75128

最近使用WTP的Server功能很不爽,連tomcat服務器時java類中的任何改動都要重啟服務器,一怒之下就改用JPDA了,以下是一些總結。

什么是JPDA

Java Platform. Debugger Architecture(JPDA:Java平臺調試架構) 由Java虛擬機后端和調試平臺前端組成

1.Java虛擬機提供了Java調試的功能

2.調試平臺通過調試交互協議向Java虛擬機請求服務以對在虛擬機中運行的程序進行調試

JPDA的構架

JPDA通過兩個接口和協議來完成如上的說明,分別是JVMTI(Java虛擬機工具接口)、JDWP(Java調試連線協議)和JDI(Java調試接口)。

1.JVMTI定義了虛擬機應該提供的調試服務,包括調試信息(Information譬如棧信息)、調試行為(Action譬如客戶端設置一個斷點)和通知(Notification譬如到達某個斷點時通知客戶端),該接口由虛擬機實現者提供實現,并結合在虛擬機中

2.JDWP定義調試服務和調試器之間的通信,包括定義調試信息格式和調試請求機制

3.JDI在語言的高層次上定義了調試者可以使用的調試接口以能方便地與遠程的調試服務進行交互,Java語言實現,調試器實現者可直接使用該接口訪問虛擬機調試服務。

運行方式

當虛擬機的調試服務運行時,虛擬機作為調試的服務提供端,監聽一個連接,而調試器通過該連接與虛擬機進行交互。目前,Windows平臺的JVM提供了兩種方式的連接:共享內存和 Socket連接,共享內存的服務提供端和調試端只能位于同一臺機,而Socket連接則支持不同異機調試,即遠程調試。

虛擬機參數設置

1.啟用調試服務

-Xdebug 啟用調試

-Xrunjdwp:加載JVM的JPDA參考實現庫

2.Xrunjdwp子參數(sub-options)配置

Xrunjdwp子參數的配置格式如下

-Xrunjdwp:[=],[=]...

幾個例子

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

在8000端口監聽Socket連接,掛起VM并且不加載運行主函數直到調試請求到達

-Xrunjdwp:transport=dt_shmem,server=y,suspend=n

選擇一個可用的共享內存(因為沒有指address)并監聽該內存連接,同時加載運行主函數

-Xrunjdwp:transport=dt_socket,address=myhost:8000

連接到myhost:8000提供的調試服務(server=n,以調試客戶端存在),掛起VM并且不加載運行主函數

-Xrunjdwp:transport=dt_shmem,address=mysharedmemory

通過共享內存的方式連接到調試服務,掛起VM并且不加載運行主函數

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

onthrow=java.io.IOException,launch=/usr/local/bin/debugstub

等待java.io.IOException被拋出,然后掛起VM并監聽8000端口連接,在接到調試請求后以命令/usr/local/bin/debugstub dt_socket myhost:8000執行

-Xrunjdwp:transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe

等待一個RuntimeException被拋出,然后掛起VM并監聽一個可用的共享內存,在接到調試請求后以命令d:\bin\debugstub.exe dt_shmem執行,是可用的共享內存

啟動tomcat

-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n

以上兩行是tomcat5.5.12的catalina.bat文件中的一句,可以看出tomcat在JPDA方式下是怎么啟動的,啟動tomcat要用catalina jpda start來啟動,不能用startup.bat啟動,啟動前設置好JPDA_TRANSPORT,JPDA_ADDRESS就OK了

另有一篇文章http://www.blogcn.com/u2/38/21/ayufox/blog/36956440.html 介紹如何使用Eclipse構建測試平臺

總結

以上是生活随笔為你收集整理的linux java远程调试_[转]JPDA:Java平台调试架构(常用的远程调试方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。