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

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

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

    posts - 7, comments - 17, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    也談Eclipse中的遠程調試

    Posted on 2006-06-13 19:33 Ardor Leo 閱讀(2658) 評論(6)  編輯  收藏 所屬分類: 有點心得

    也談Eclipse中的遠程調試

    問題的由來:平時的開發,我們基本都是在 Debug 模式下做的,這樣便于發現問題給于修正。一旦項目到了實施測階段,程序被部署到服務器上,現場調試就會成為一個問題。因為被部署的服務器上的日志往往不能提供足夠的信息;或是有了足夠的信息,可即時想得到一個狀態點的信息又不是太容易(比如說幾個關鍵變量的即時值)。于是想到,如果可以象本機調試程序一樣就好了。

    于是(呵呵,又是于是), google 了一下,真得還是找到了一篇文章(先謝謝了),做法是

    只要在 TOMCAT 的啟動文件中加入一些參數就可以在 ECLIPSE 中啟動 REMOTE_DEBUG 了,具體方法如下:
    %TOMCAT_HOME%\bin\catalina.bat 文件中加入 SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9046
    打開 ECLIPSE ,在 ECLIPSE RUN 菜單中選擇 DEBUG... 項,然后在左邊的樹形菜單中新增一個 REMOTE_DEBUG( 遠程調試 ) ,填 寫最基本的幾項信息就行了,這幾項信息是:調試名稱,工程名稱,調試主機的 URL 以及 PORT ,在 allow terminate of remote VM 前打上勾 . 最主要的就是端口信息,這個端口信息來自于上面那一串參數中的 address 項,可以將 address 設置為任何未被占用的端口。
    以控制臺方式啟動 TOMCAT ,可以在控制臺看到 "Listening for transport dt_socket at address: 5888" 這樣的信息,說明調試端口已經被監聽。然后打開之前設置的調試并在 IE 或者 ECLIPSE 內置的瀏覽器中輸入 URL 運行 WEB 程序,記得在運行 WEB 程序之前要設置斷點。
    現在就可以在 ECLIPSE 中進行 WEB 調試了 ...

    要說明的是:

    我并沒按上文那樣設置變量。我看了 catalina.bat 這個批處理文件,寫的很嚴謹,環境變量設置有它自己的規范,我不想更改。在這個文件我看到了這么一個名字 setenv.bat 。對了,看到它你就知道,你可以建立這么一個文件把 SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9046 放進去,OK啦。但這是只是 windows 中的作法。

    岔開說一句話。其實,上面的參數設置并不是都需要的,主要的就兩項: transport address ,對應于 catalina.bat 文件中 JPDA_TRANSPORT JPDA_ADDRESS 現兩個變量,你可以直接查詢并修改這兩個參數的值,注意 JPDA_TRANSPORT 的值一定是 dt_socket 才行。不過啟動方式有些變化,命令行需要這樣: catalina.bat jpda start

    Linux 中,可以直接 ./ catalina.sh jpda start 命令直接啟動調試模式,不過默認的端口是 8000 , 你也可以在 catalina.sh 查找 JPDA_ADDRESS="8000" 把端口修改想要的值。至于寫配置文件 setenv.sh 直接用 ./starup.sh 啟動的形式,我沒成功,呵呵

    下面這個就是 Eclipse 中的 Debug 設置窗口了,別告訴我你不會調出來,呵呵

    remote.jpg?

    這里,我在本機也用 remote 調試程序。當然,自然是有好處的了。 eclipse 中調程序的都知道,在 eclipse 中再啟動其他服務(不一定是 Tomcat 啦),會使eclipse編輯的響應速度急劇下降,甚至假死,很是不爽!現在好了,這么一設,既有了速度,又可以設調試斷點,哈哈,舒服啊。


    評論

    # re: 也談Eclipse中的遠程調試  回復  更多評論   

    2006-06-14 06:48 by thinkbase.net
    這個......叫做 JPDA, 建議有空搜索一下 JPDA, 了解一下相關知識

    # re: 也談Eclipse中的遠程調試  回復  更多評論   

    2006-06-14 06:52 by thinkbase.net
    事實上所有Java程序都支持這樣的調試, 注意到 suspend=n 沒有, 如果 suspend=y, 那么Java程序啟動時會等在那里直到你的調試器通過JPDA連上去之后再接著運行, 我以前調試 Ant 的自定義 Task 用過. 至于調試 Application Server 那更是常用, JBoss, Weblogic, Websphere 都這樣調試過.

    # re: 也談Eclipse中的遠程調試  回復  更多評論   

    2006-06-14 18:46 by Ardor Leo
    注意到到高人的回復了,謝謝!

    # re: 也談Eclipse中的遠程調試  回復  更多評論   

    2006-06-15 23:02 by steeven
    樓主是火星人,鑒定完畢         ---布什

    # re: 也談Eclipse中的遠程調試  回復  更多評論   

    2006-06-20 15:17 by Andy luo
    你這樣說他會去做沙大木的

    # re: 也談Eclipse中的遠程調試  回復  更多評論   

    2009-06-09 20:38 by ufo
    www.gm365.com上發布的web server軟件UFO不會出現一個字節的內存泄漏和一個線程的不能回收,使用UFO做Web Server的好處是網站能做得很穩定,永遠也不會自己down掉;UFO在托管機房丟包率很高、遭受Hacker攻擊、互聯網 骨干網被黑等惡劣的環境條件下仍然能很好地運行;UFO在對付Hacker方面(防Hacker弄down和Hacker抓取不該訪問的資源)也有足 夠措施。
    另外,UFO幾乎不會進行垃圾回收,消耗CPU很少,在普通的PC Server上用UFO運行網站,平時CPU占用率<0.1%,最多時也不會超 過5%。您知道,JVM的垃圾回收會導致大量的運算,消耗很多CPU,從而導致Server的負載能力和響應速度下降。UFO在對象管理方面采 用了很好的機制和算法,做得很出色。用UFO運行網站,可以一直保證高負載能力,快速的響應速度和低CPU消耗。
    主站蜘蛛池模板: 亚洲乱亚洲乱淫久久| 福利片免费一区二区三区| 成年女人喷潮毛片免费播放| 亚洲成AV人片在WWW| 狠狠综合久久综合88亚洲| 18级成人毛片免费观看| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 亚洲乱码一二三四区麻豆| 国产zzjjzzjj视频全免费| 无码中文字幕av免费放dvd| 亚洲精华国产精华精华液好用| 亚洲精品无码久久一线| 最近最新中文字幕完整版免费高清| jizz免费观看| 国产精品亚洲精品青青青| 亚洲午夜久久久影院| 毛片视频免费观看| 中文字幕视频免费在线观看| 亚洲最大的成人网| 久久久久久亚洲精品| 免费在线观看亚洲| 欧美好看的免费电影在线观看| 成人毛片100免费观看| 亚洲欧美日韩中文字幕一区二区三区 | 在线天堂免费观看.WWW| 成人网站免费看黄A站视频| 老司机亚洲精品影院在线观看| 亚洲欧洲国产经精品香蕉网| 久久久久一级精品亚洲国产成人综合AV区| 成年人视频免费在线观看| 国产精品九九久久免费视频| 亚洲精品无码你懂的| 亚洲精品乱码久久久久久下载| 久久久久亚洲av成人无码电影| 日本一道高清不卡免费| 成人免费在线看片| 亚洲一级免费毛片| 无码午夜成人1000部免费视频| 热久久这里是精品6免费观看| 国产精品亚洲一区二区三区久久 | 四虎国产精品永久免费网址|