zoukankan      html  css  js  c++  java
  • 服务器程序DEBUG

    服务器程序DEBUG

    服务器端设定

    Tomcat

    默认我们启动Tomcat是使用下边的命令

    ./catalina.sh start 

    如果想DEBUG的话,只需要加一个参数打开JPDA(Java Platform Debugger Architecture)就可以了

    ./catalina.sh jpda start

    注:默认的监听端口是8000,如果想修改这个端口的话,可以修改环境变量JPDAADDRESS。 如果我们的服务器是通过daemon.sh启动的tomcat话,貌似没有找到默认打开JPDA的方法,我们可以环境变量CATALINAOPTS达到同样的效果

    export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8088,server=y,suspend=n"

    普通JAVA程序

    我们可以在Java命令中加入如下参数

    -Xdebug-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

    本地设定

    在eclipse的“Run”菜单下选择“Debug...”菜单,在弹出的对话框左边的菜单中选择“Remote Java Application”菜单,右键点击,选择“New”,这个时候弹出一个需要填写参数的对话框。在弹出的框中,定义项目名称,选择要断点调试的项目,Connect type(默认Standard (Socket Attach)),定义我们的工程放在哪里,填写他的ip以及提供的服务端口号

    参数说明

    Xdebug

    启用调试特性。

    -Xrunjdwp:<sub-options>

    在目标 VM 中加载 JDWP(Java 调试网络协议Java Debug Wire Protocol) 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。 注,从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug 和 -Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择 -Xdebug 和 -Xrunjdwp。下面简单描述 -Xrunjdwp 子选项。

    transport

    这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。

    server

    如果值为 y,目标应用程序监听将要连接的调试器应用程序(VM端作为服务器)。否则,它将连接到特定地址上的调试器应用程序(eclipse端作为服务器)。

    address

    这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。

    suspend

    如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。

    参考文献

    1.http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/

    2.http://jiangzhengjun.iteye.com/blog/683603

  • 相关阅读:
    我们为何要使用多线程,它有什么优点?
    Java并发和多线程那些事儿
    【BJG吐槽汇】第2期
    【BJG吐槽汇】第一期
    360:且用且珍惜!解决虚拟机linux启动缓慢以及ssh端卡顿的问题!
    多个不同的app应用间应该如何进行消息推送呢?
    JSONResult 封装
    MySQL 优化集锦
    学习bootstrap3
    开发一个响应式的静态网站---实战
  • 原文地址:https://www.cnblogs.com/tjpanda88/p/3848851.html
Copyright © 2011-2022 走看看