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

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

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

    J2EE,Documentum,GWT,EJB學(xué)習(xí)路程

    為了所愛的,和愛我的人努力

     

    Java Debug

    在編程的生涯中,最重要就是能Debug,我最近在玩documentum6.0的內(nèi)置中間件weblogic,所以Remote Debug是少不了的。
    先說幾個概念(這是我在網(wǎng)上查的):
        1.什么是JPDA:
            Java Platform Debugger Architecture(JPDA:Java平臺調(diào)試架構(gòu)) 由Java虛擬機(jī)后端和調(diào)試平臺前端組成 :
                a.Java虛擬機(jī)提供了Java調(diào)試的功能
                b.調(diào)試平臺通過調(diào)試交互協(xié)議向Java虛擬機(jī)請求服務(wù)以對在虛擬機(jī)中運(yùn)行的程序進(jìn)行調(diào)試
           JPDA架構(gòu):
              JPDA通過兩個接口和協(xié)議來完成如上的說明,分別是JVMTI(Java虛擬機(jī)工具接口)、JDWP(Java調(diào)試連線協(xié)議)和JDI(Java調(diào)試接口)。
                a.JVMTI定義了虛擬機(jī)應(yīng)該提供的調(diào)試服務(wù),包括調(diào)試信息(Information譬如棧信息)、調(diào)試行為(Action譬如客戶端設(shè)置一個斷點(diǎn))和通知                      (Notification譬如到達(dá)某個斷點(diǎn)時通知客戶端),該接口由虛擬機(jī)實(shí)現(xiàn)者提供實(shí)現(xiàn),并結(jié)合在虛擬機(jī)中
                b.JDWP定義調(diào)試服務(wù)和調(diào)試器之間的通信,包括定義調(diào)試信息格式和調(diào)試請求機(jī)制
                c.JDI在語言的高層次上定義了調(diào)試者可以使用的調(diào)試接口以能方便地與遠(yuǎn)程的調(diào)試服務(wù)進(jìn)行交互,Java語言實(shí)現(xiàn),調(diào)試器實(shí)現(xiàn)者可直接使用該接口訪問虛                擬機(jī)調(diào)試服務(wù)。
           運(yùn)行方式:
              當(dāng)虛擬機(jī)的調(diào)試服務(wù)運(yùn)行時,虛擬機(jī)作為調(diào)試的服務(wù)提供端,監(jiān)聽一個連接,而調(diào)試器通過該連接與虛擬機(jī)進(jìn)行交互。目前,Windows平臺的JVM提供了兩 種          方式的連接:共享內(nèi)存和 Socket連接,共享內(nèi)存的服務(wù)提供端和調(diào)試端只能位于同一臺機(jī),而Socket連接則支持不同異機(jī)調(diào)試,即遠(yuǎn)程調(diào)試。
           虛擬參數(shù)配置:
              a.啟用調(diào)試服務(wù)
            -Xdebug 啟用調(diào)試
            -Xrunjdwp:<sub-options> 加載JVM的JPDA參考實(shí)現(xiàn)庫
              b. Xrunjdwp子參數(shù)(sub-options)配置
                 Xrunjdwp子參數(shù)的配置格式如下
                 -Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
              c.例子
                 -Xrunjdwp:transport=dt_socket,server=y,address=8000
             在8000端口監(jiān)聽Socket連接,掛起VM并且不加載運(yùn)行主函數(shù)直到調(diào)試請求到達(dá)

            -Xrunjdwp:transport=dt_shmem,server=y,suspend=n
            選擇一個可用的共享內(nèi)存(因?yàn)闆]有指address)并監(jiān)聽該內(nèi)存連接,同時加載運(yùn)行主函數(shù)

            -Xrunjdwp:transport=dt_socket,address=myhost:8000
            連接到myhost:8000提供的調(diào)試服務(wù)(server=n,以調(diào)試客戶端存在),掛起VM并且不加載運(yùn)行主函數(shù)
     
            -Xrunjdwp:transport=dt_shmem,address=mysharedmemory
            通過共享內(nèi)存的方式連接到調(diào)試服務(wù),掛起VM并且不加載運(yùn)行主函數(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)存
        2.基本原理
          
    服務(wù)器端在啟動的服務(wù)器的同時,也把JPDA明確的啟動起來,分配一個端口號,那么你在客戶端只要連接上JPDA服務(wù)(sun稱為工具平臺)便能測試了。
        3.Tomcat 實(shí)例
          
    打開tomcat的bin目錄,找到catalina.bat, 用記事本打開它。
            找到set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%,
            改為set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=5500,server=y,suspend=n
            這樣就打開了5500端口,然后你到bin目錄下運(yùn)行jpda start,你再去監(jiān)聽5500端口,就可以實(shí)現(xiàn)remote debug了。
          

    posted on 2008-06-18 19:11 田亮 閱讀(934) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    MyHome

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码专区日韩| 四虎免费在线观看| 久久精品国产亚洲av麻| 国产精品免费久久| 中文字幕日韩亚洲| 在线观看免费黄色网址| 水蜜桃亚洲一二三四在线| 免费国产黄网站在线观看可以下载 | 91精品国产免费久久国语蜜臀| 久久精品国产96精品亚洲| 毛片在线播放免费观看| 亚洲人成网站在线播放影院在线| 日韩免费视频一区二区| 久久精品九九亚洲精品| 毛片高清视频在线看免费观看| 亚洲乱码中文字幕在线| 亚洲第一区在线观看| 中国黄色免费网站| 亚洲高清中文字幕| 成年女人午夜毛片免费看| 亚洲欧美在线x视频| 国产亚洲精品自在线观看| 5555在线播放免费播放| 亚洲色无码专区一区| 亚洲国产精品成人| 免费福利电影在线观看| 亚洲an日韩专区在线| 国产gav成人免费播放视频| 中文字幕a∨在线乱码免费看| 91情国产l精品国产亚洲区| 大地资源在线观看免费高清| 国产福利免费视频| 亚洲电影唐人社一区二区| 美女黄网站人色视频免费国产| 亚洲精品视频免费观看| 亚洲精品中文字幕无码AV| 国产精品二区三区免费播放心| 9久热这里只有精品免费| 亚洲精品在线网站| 亚洲国产精品成人久久蜜臀| 无码少妇精品一区二区免费动态 |