`

Java 远程调用 debug (转)

    博客分类:
  • Java
阅读更多

首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。

JAVA的调试方法如下:
1。 首先支持JVM,并设置参数,使之工作在DEBUG模式下,加入参数:-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,onthrow=java.io.IOException,launch=/sbin/echo
其中,-Xdebug是通知JVM工作在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:
transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。
server参数是指是否支持在server模式的VM中.
onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。
launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选
suspend指明,是否在调试客户端建立起来后,再执行JVM。
onuncaught(=y或n)指明出现uncaught exception 后,是否中断JVM的执行.

2。启动调试工具。
最简单的调试工具就是上面提到的JDB,以上述调试用JVM为例,可以用下面的命运行启动JDB:
jdb -connect com.sun.jdi.SocketAttach:port=5432,hostname=192.168.11.213
另外,还有好多的可视化调试工具,如 eclipse,jsawt等等。Eclipses可用 ant debug来建立一个调试方法。



其实就是使用了JDK的JPDA,在启动服务器(Jboss或者Tomcat等)的命令行参数里面加上:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

Java远程调试

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n

-XDebug               启用调试。
-Xnoagent             禁用默认sun.tools.debug调试器。
-Djava.compiler=NONE  禁止 JIT 编译器的加载。
-Xrunjdwp             加载JDWP的JPDA参考执行实例。
transport             用于在调试程序和 VM 使用的进程之间通讯。
dt_socket             套接字传输。
dt_shmem              共享内存传输,仅限于 Windows。
server=y/n            VM 是否需要作为调试服务器执行。
address=3999          调试服务器的端口号,客户端用来连接服务器的端口号。
suspend=y/n           是否在调试客户端建立连接之后启动 VM 。

Resin:
RESIN_HOME\bin\httpd.exe -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n

Tomcat:
在catalina.sh/bat 的最上面加上:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 即可。

Weblogic:
在startWebLogic.bat加上:set JAVA_OPTIONS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

启动App server后,在ide下通过debug remote java application并侦听相应的debug端口

Eclipse Rcp:

java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,suspend=y,server=y,address=8000 -cp F:/rcp/plugins/org.eclipse.equinox.launcher_1.0.0.v20070606.jar org.eclipse.equinox.launcher.Main -application rcp.application -data F:/rcp/workspace -os win32 -ws win32 -arch x86 -nl en_US

-Xdebug -Xnoagent等参数需要放在main class前面

http://dn.codegear.com/cn/article/33654
http://www.eclipsezone.com/eclipse/forums/t53459.html
http://articles.techrepublic.com.com/5100-10878_11-6139512.html
http://www.lifevv.com/tenyo/doc/20070918003423784.html

分享到:
评论

相关推荐

    java调用C#封装的dll方法

    ### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...

    JAVAECLIPSE下配置WINDCHILL远程调试WINDCHILL学习笔记.pdf

    ### JAVAECLIPSE 下配置 WINDCHILL 远程调试详解 #### 一、配置概述 本文档旨在详细介绍如何在 JavaEclipse 环境下配置 Windchill 进行远程调试的过程。远程调试是指在一个主机上调试运行在另一台机器上的应用程序...

    eclipse远程debug

    eclipse 远程 debug tomcat 和 websphere 的 web 应用 eclipse 远程 debug 是一种常用的 debugging 技术,用于在远程服务器上调试 Web 应用程序。今天我们将讨论如何使用 eclipse 远程 debug tomcat 和 websphere ...

    tomcat远程debug与jrebel热部署文件

    至于`remote-debug.bat`,这是一个用于远程调试的批处理文件,它通常会调用已经配置好远程调试参数的`catalina.sh`或`catalina.bat`,并启动调试客户端,连接到之前设置的调试端口(如8000)。 总结来说,通过配置...

    windchill远程调试详细介绍

    Windchill 远程调试是指在 Windchill 开发环境中,使用 Java 平台调试器(JPDA)来调试远程服务器上的 Java 应用程序。JPDA(Java Platform Debugger Architecture)是 Java 平台上的调试器定义的标准体系结构,它...

    Eclipse远程调试Java代码

    这通常通过JVM的远程调试接口实现,即使用标准的Java Debug Wire Protocol (JDWP)。JDWP允许IDE与远程JVM建立连接,进而控制程序执行,设置断点,查看和修改变量等。 1. **配置远程调试环境** - **启动远程服务器*...

    java_debug调试.

    远程调试是指在本地机器上调试部署在远程服务器上的Java应用程序。这对于分布式系统的开发尤为重要。 1. **本机作为客户端**: - 在远程服务器上启动Java程序时添加虚拟机参数以开启调试模式。 - 对于JDK 1.5以前...

    服务器远程调试debug代码示例

    本示例将详细介绍如何进行服务器远程调试Debug代码。 首先,我们要理解远程调试的基本原理。远程调试通常基于特定的调试协议,例如Java的JMX或JDWP,Python的pdb,或是C++的GDB等。这些协议允许客户端(通常是...

    Java_debug_Document.rar_Java_debug_Document

    1. **JDK Debug工具**:Java Development Kit(JDK)内含强大的Java调试工具集(JDB),它是命令行工具,适用于基础的远程和本地调试。学习如何配置JDB,并使用其基本命令如`step`、`next`、`print`等进行单步执行、...

    JAVA远程调试.txt

    ### JAVA远程调试详解 在开发过程中,特别是在分布式系统或微服务架构中,远程调试成为解决复杂问题的关键技术之一。本文将详细介绍如何通过JAVA进行远程调试,包括配置环境、启动调试服务器以及连接远程调试客户端...

    PHP,JAVA远程调试

    在IT行业中,开发人员经常需要面对复杂的问题,这时远程调试技术就显得尤为重要。... 首先,让我们了解一下什么是远程...通过阅读《PHP,Java远程调试教程.docx》这份文档,相信你会得到更具体的步骤指导和实践经验分享。

    Debug远程断点调试配制

    Weblogic是一款广泛使用的Java应用服务器,它提供了强大的远程调试功能。以下是对"Debug远程断点调试配制"这一主题的详细解释: 首先,我们来理解什么是远程断点调试。断点调试是一种编程调试技术,允许我们在代码...

    DWR中各种java方法的调用

    通过以上配置,DWR能够灵活适应不同规模和需求的应用,无论是简单项目还是复杂系统,都能高效地实现Java方法的远程调用。接下来,我们将深入探讨如何在JavaScript中实际调用这些Java方法,以及DWR在现代Web开发中的...

    java Web Service 打成War包后如何Debug

    - **Eclipse**:在Eclipse中,你可以将WAR项目部署到内置的Tomcat服务器或者远程服务器上,然后通过"Debug As" -> "Java Application"启动调试模式。确保在项目设置中,已启用“发布为源代码”选项,这样Eclipse...

    tomcat远程debug

    本文将详细讲解如何配置Tomcat进行远程调试,以及如何在Eclipse环境中设置远程Java应用程序的调试。 首先,我们需要在Tomcat服务器上进行配置。打开Tomcat安装目录下的`%CATALINE_HOME%/bin`路径,找到并编辑`...

    java实现的简易xshell终端

    Java 实现简易Xshell终端是基于Java语言与JSch库结合的一种技术,它允许开发者创建一个功能类似于Xshell的命令行界面,通过SSH协议连接到远程服务器进行操作。JSch是一个纯Java实现的SSH2库,它提供了对SSH2协议的...

    IDEA,Eclipse远程调试应用

    在代码中设置断点,当远程应用运行到这些断点时,Eclipse将暂停执行,允许开发者查看调用堆栈、变量值等。 ### 总结 通过上述步骤,无论是使用IntelliJ IDEA还是Eclipse,都可以轻松地设置远程调试环境。关键是...

    idea远程debug程序.docx

    通过以上步骤,你便能在IDEA中成功地进行远程调试Tomcat服务器上的Java应用。这种方式不仅适用于排查他人代码的问题,也适用于团队协作时对生产环境或测试环境的调试,是现代软件开发中不可或缺的技巧之一。

    tomcat_debug.rar

    在远程debug场景下,我们需要在这个文件中添加一些特定的Java选项来启用debug模式。通常,我们需要设置以下参数: ```cmd set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n `...

    使用JPDA进行Java程序远程调试

    Java Platform Debugger Architecture (JPDA) 是Java开发工具的一部分,它为开发者提供了强大的远程调试功能,使得可以在一台机器上调试运行在另一台机器上的Java应用程序。本文将详细介绍如何使用JPDA进行Java程序...

Global site tag (gtag.js) - Google Analytics