zoukankan      html  css  js  c++  java
  • 远程debug

    java中的远程debug调试 
    tomcat jvm 参数加入:-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y 
    参数 含义 
    Xdebug 告诉jvm运行在debug模式下 
    Xnoagent 不清楚 
    Xrunjdwp transport 指定连接方式(包括socket传输和内存传输两种,其中内存传输只支持windows,而且内存传输不支持远程调试) 
    address 监听端口,以接收debug客户端发起的TCP连接。 
    server =y 表示在remote debugging会话中作为服务端 
    suspend =y 表示在客户端建立连接前,服务端被挂起;=n 则不会被挂起。 专门调试时建议设置成y 
    客户端设置 
    (1) 打开eclipse工作台 (笔者用的是eclipse3.2) 
    (2) 选择“Run->Debug…”菜单项 
    (3) 选择“Remote Java Application”,在右键弹出菜单中选择“New” 
    (4) 在Connect标签项中配置连接方式,远程主机的IP和端口(由于在服务端我们设置的是8787,客户端则设置8787) 
    (5) 在Source标签项中配置好源代码,一般保留默认的就可以。 
    调试 
    (1) 在服务端(笔者实验是在10.10.41.182上)运行脚本ex.sh,会显示程序正监听8787端口,由于suspend设置成了=y,所以必须等到客户端连接上了服务端才会继续运行。 
    (2) 运行客户端,运行刚才建立的RemoteDebugger(1),注意到远程调试项图标下面有个“L”型的折线图标。 
    在debug Perspective模式下就可以看到阻塞于断点的jvm了 
    例如Java HotSpot(TM) 64-Bit Server VM[datanode-2:8088]
    Thread [main] (Suspended (breakpoint at line 282 in DataNode))
    DataNode.startDataNode(Configuration, AbstractList<File>) line: 282
    DataNode.<init>(Configuration, AbstractList<File>) line: 232
    DataNode.makeInstance(String[], Configuration) line: 1363
    DataNode.instantiateDataNode(String[], Configuration) line: 1318
    DataNode.createDataNode(String[], Configuration) line: 1326
    DataNode.main(String[]) line: 1448

    2011.12.08 
    1. tomcat debug 
    /usr/java/default/bin/java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8082 -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start 

    2011.12.13 
      1.  /usr/java/default/bin/jstat -gcutil pid 500 100 
      2. strace jps 
      3.  /usr/java/default/bin/jstack -F 9107(pid) 堆栈信息 

    2012.05.17 
      1. Eclipse 中打断点, debug时, 提示 "Unable to install breakpoint due to missing line number attributes. Modify compiler options to generate line number attributes" 是因为被debug的jar包,没有行信息, 要在javac里加 debug="true" 参数重新编译jar文件, 再debug就可以了.

  • 相关阅读:
    Easy-Transfer学习
    录音+语音转文字
    pyQt点击事件和数据传输
    第一个python-ui界面
    python写第一个网页
    pyhthon第一个小脚本——文件备份
    Stones HDU 1896
    Cow Sorting POJ 3270 & HDU 2838
    Stones
    大数相加
  • 原文地址:https://www.cnblogs.com/blogszixin/p/debug.html
Copyright © 2011-2022 走看看