Jeffrey's Sky

          Go with wind
          隨筆 - 14, 文章 - 1, 評(píng)論 - 15, 引用 - 0
          數(shù)據(jù)加載中……

          有關(guān)在eclipse上遠(yuǎn)程debug的問(wèn)題。

             Java 提供了遠(yuǎn)程debug的功能,這確實(shí)是一件很好的事。它能夠幫助我們?cè)谝恍](méi)有虛機(jī)的OS(比如HP,AIX,等等)下調(diào)試我們的程序。

             1.建立Remote debug的準(zhǔn)備工作。
              a.可以將這些在java命令行中的設(shè)置放到一個(gè)script中去。例子如下所示:
           
              java -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y  -classpath
              其中,“-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y”是必須的。suspend=y---表明是在程序啟動(dòng)后hang在那個(gè)端口處并監(jiān)聽(tīng)(如果設(shè)為n,則不會(huì)hang);address=8787---表明是在遠(yuǎn)端機(jī)器上的端口號(hào)。除此之外,在java后也可以添加java的系統(tǒng)環(huán)境變量,如-D等等。   
              b.在eclipse中可以通過(guò)設(shè)立一個(gè)remote debug的方式來(lái)建立這種連接。  
             2.遠(yuǎn)程調(diào)試時(shí),局部變量的值無(wú)法Watch/Inspect問(wèn)題的解決
              這實(shí)際上是由eclipse在build的時(shí)候,沒(méi)有將javac后的option -g加上去。只有當(dāng)加上 -g這個(gè)參數(shù)時(shí),所有的調(diào)試信息才會(huì)被build到class文件中去。
              但ecipse沒(méi)有提供這樣在build時(shí)設(shè)置參數(shù)的user interface。所以,最好的方式就是寫(xiě)一個(gè)Ant腳本。
              例子如下,

               <?xml version="1.0" encoding="UTF-8" standalone="no"?>
              <project basedir="." default="build" name="ssdv">
              <property name="build.location" value="../ssdv_build"/>
              <property name="debuglevel" value="source,lines,vars"/><!--必須的-->
              <property name="target" value="1.5"/>
              <property name="source" value="1.5"/>
              
              <target name="init">
                  <mkdir dir="bin"/>
              </target>
              
              
              <target name="clean">
                  <delete dir="bin"/>
              </target>
             
              <target depends="init" name="build-project">
                  <echo message="${ant.project.name}: ${ant.file}"/>

                  <javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}">  <!--必須的-->
                      <src path="."/>
                      <classpath refid="ssdv.classpath"/>
                  </javac>

              </target>
              
          </project>
             
               這樣,將生成的build工程拷貝到要測(cè)試的遠(yuǎn)程O(píng)S。啟動(dòng)腳本,然后就可以看到local variables了。

          posted on 2008-12-12 17:34 Jeffrey Feng 閱讀(817) 評(píng)論(0)  編輯  收藏 所屬分類: Web服務(wù)器


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 五大连池市| 临清市| 抚远县| 威海市| 闵行区| 金湖县| 五莲县| 南乐县| 赤城县| 彰化市| 丰宁| 肥乡县| 通江县| 册亨县| 常熟市| 宁阳县| 榆林市| 布拖县| 温州市| 台北市| 文成县| 临高县| 海阳市| 余庆县| 门源| 延吉市| 达州市| 塔城市| 昌吉市| 方正县| 宜昌市| 咸阳市| 长春市| 木兰县| 鸡东县| 壶关县| 三门县| 拜泉县| 宜兰市| 阆中市| 秭归县|