Jeffrey's Sky

          Go with wind
          隨筆 - 14, 文章 - 1, 評論 - 15, 引用 - 0
          數據加載中……

          有關在eclipse上遠程debug的問題。

             Java 提供了遠程debug的功能,這確實是一件很好的事。它能夠幫助我們在一些沒有虛機的OS(比如HP,AIX,等等)下調試我們的程序。

             1.建立Remote debug的準備工作。
              a.可以將這些在java命令行中的設置放到一個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---表明是在程序啟動后hang在那個端口處并監聽(如果設為n,則不會hang);address=8787---表明是在遠端機器上的端口號。除此之外,在java后也可以添加java的系統環境變量,如-D等等。   
              b.在eclipse中可以通過設立一個remote debug的方式來建立這種連接。  
             2.遠程調試時,局部變量的值無法Watch/Inspect問題的解決
              這實際上是由eclipse在build的時候,沒有將javac后的option -g加上去。只有當加上 -g這個參數時,所有的調試信息才會被build到class文件中去。
              但ecipse沒有提供這樣在build時設置參數的user interface。所以,最好的方式就是寫一個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工程拷貝到要測試的遠程OS。啟動腳本,然后就可以看到local variables了。

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


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


          網站導航:
           
          主站蜘蛛池模板: 琼海市| 九龙县| 济阳县| 晋中市| 商都县| 蓝山县| 东台市| 田阳县| 青铜峡市| 昂仁县| 民丰县| 锦州市| 如东县| 启东市| 乐清市| 阿拉善右旗| 新田县| 靖宇县| 奇台县| 平江县| 根河市| 晋中市| 新田县| 平泉县| 白沙| 长泰县| 石河子市| 甘洛县| 潜江市| 台东市| 襄樊市| 屏东县| 庆安县| 马关县| 崇明县| 桦南县| 奉化市| 南康市| 新乡市| 泰安市| 邵阳市|