<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 170  文章 - 536  trackbacks - 0
    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    我參與的團隊

    隨筆分類(103)

    搜索

    •  

    積分與排名

    • 積分 - 414037
    • 排名 - 135

    最新評論

    閱讀排行榜

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

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

      什么是JPDA
      Java Platform Debugger Architecture(JPDA:Java平臺調(diào)試架構(gòu)) 由Java虛擬機后端和調(diào)試平臺前端組成
      1.Java虛擬機提供了Java調(diào)試的功能
      2.調(diào)試平臺通過調(diào)試交互協(xié)議向Java虛擬機請求服務(wù)以對在虛擬機中運行的程序進行調(diào)試

      JPDA的構(gòu)架
      JPDA通過兩個接口和協(xié)議來完成如上的說明,分別是JVMTI(Java虛擬機工具接口)、JDWP(Java調(diào)試連線協(xié)議)和JDI(Java調(diào)試接口)。
      1.JVMTI定義了虛擬機應(yīng)該提供的調(diào)試服務(wù),包括調(diào)試信息(Information譬如棧信息)、調(diào)試行為(Action譬如客戶端設(shè)置一個斷點)和通知(Notification譬如到達某個斷點時通知客戶端),該接口由虛擬機實現(xiàn)者提供實現(xiàn),并結(jié)合在虛擬機中
    2.JDWP定義調(diào)試服務(wù)和調(diào)試器之間的通信,包括定義調(diào)試信息格式和調(diào)試請求機制
    3.JDI在語言的高層次上定義了調(diào)試者可以使用的調(diào)試接口以能方便地與遠程的調(diào)試服務(wù)進行交互,Java語言實現(xiàn),調(diào)試器實現(xiàn)者可直接使用該接口訪問虛擬機調(diào)試服務(wù)。

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

      虛擬機參數(shù)設(shè)置
      1.啟用調(diào)試服務(wù)
        -Xdebug 啟用調(diào)試
        -Xrunjdwp:<sub-options> 加載JVM的JPDA參考實現(xiàn)庫
      2.Xrunjdwp子參數(shù)(sub-options)配置
        Xrunjdwp子參數(shù)的配置格式如下
        -Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...

      幾個例子
      -Xrunjdwp:transport=dt_socket,server=y,address=8000
      在8000端口監(jiān)聽Socket連接,掛起VM并且不加載運行主函數(shù)直到調(diào)試請求到達
      -Xrunjdwp:transport=dt_shmem,server=y,suspend=n
      選擇一個可用的共享內(nèi)存(因為沒有指address)并監(jiān)聽該內(nèi)存連接,同時加載運行主函數(shù)
      -Xrunjdwp:transport=dt_socket,address=myhost:8000
      連接到myhost:8000提供的調(diào)試服務(wù)(server=n,以調(diào)試客戶端存在),掛起VM并且不加載運行主函數(shù)
      -Xrunjdwp:transport=dt_shmem,address=mysharedmemory
      通過共享內(nèi)存的方式連接到調(diào)試服務(wù),掛起VM并且不加載運行主函數(shù)
      -Xrunjdwp:transport=dt_socket,server=y,address=8000,
      onthrow=java.io.IOException,launch=/usr/local/bin/debugstub
      等待java.io.IOException被拋出,然后掛起VM并監(jiān)聽8000端口連接,在接到調(diào)試請求后以命令/usr/local/bin/debugstub dt_socket myhost:8000執(zhí)行
      -Xrunjdwp:transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe
      等待一個RuntimeException被拋出,然后掛起VM并監(jiān)聽一個可用的共享內(nèi)存,在接到調(diào)試請求后以命令d:\bin\debugstub.exe dt_shmem <address>執(zhí)行,<address>是可用的共享內(nèi)存

      啟動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啟動,啟動前設(shè)置好JPDA_TRANSPORT,JPDA_ADDRESS就OK了

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

    posted on 2007-06-18 16:20 steady 閱讀(818) 評論(0)  編輯  收藏 所屬分類: Other
    主站蜘蛛池模板: 国产日韩亚洲大尺度高清| 久久精品免费一区二区喷潮| 香蕉视频在线观看免费国产婷婷| 2022年亚洲午夜一区二区福利 | 国产精品国产免费无码专区不卡| 亚洲一区无码中文字幕乱码| 亚洲一区免费视频| 亚洲精品国产啊女成拍色拍| h在线观看视频免费网站| 亚洲区精品久久一区二区三区| 国产三级在线观看免费| 亚洲日韩精品无码专区| 免费在线观看中文字幕| 国产V片在线播放免费无码| 色噜噜AV亚洲色一区二区| 国内精品免费视频精选在线观看 | 免费看污成人午夜网站| 亚洲欧洲av综合色无码| 全黄性性激高免费视频| 国产久爱免费精品视频| 亚洲福利在线观看| 毛片免费在线观看网站| 四虎影视永久在线精品免费| 亚洲中文字幕第一页在线| 国产成人精品免费久久久久| 国产99在线|亚洲| 2048亚洲精品国产| 久久成人a毛片免费观看网站| 久久久久se色偷偷亚洲精品av| 巨胸喷奶水视频www网免费| 在线免费观看一级毛片| 免费无毒a网站在线观看| 亚洲AV日韩AV天堂一区二区三区| AV大片在线无码永久免费| 羞羞视频免费观看| 亚洲人成在线影院| 国产成人免费网站在线观看| 久久免费国产精品一区二区| 亚洲色大成WWW亚洲女子| 国产亚洲精品成人AA片新蒲金| 国产91色综合久久免费分享|