java中的远程debug调试
java -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就可以了.
分享到:
相关推荐
Java远程debug调试视频教程+文档+源码 结合IDEA工具 jar包 war包方式
远程debug 一、remote debug 何为远程debug呢?通常我们在开发过程中,都会将代码部署到服务中,这个时候QA 提出了一个bug,通过查看代码的逻辑发现问题十分的困难?一般情况下都是想着本地能不能复现一下,本地debug...
在开发过程中,为了定位和解决复杂的问题,远程Debug功能显得尤为重要。本篇文章将详细讲解如何配置WebLogic Server进行远程Debug。 首先,我们要了解远程Debug的基本原理。远程Debug允许开发者在不中断生产环境...
远程debug调试Java,直接替换到apache-tomcat-7.0.78/bin/下的startup.sh
这通常通过JVM的远程调试接口实现,即使用标准的Java Debug Wire Protocol (JDWP)。JDWP允许IDE与远程JVM建立连接,进而控制程序执行,设置断点,查看和修改变量等。 1. **配置远程调试环境** - **启动远程服务器*...
- 在启动远程服务时,同时启用 Jrebel 热部署和远程 Debug 参数,如:`java -agentpath:./lib/libjrebel64.so -Drebel.remoting_plugin=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=...
eclipse 远程 debug tomcat 和 websphere 的 web 应用 eclipse 远程 debug 是一种常用的 debugging 技术,用于在远程服务器上调试 Web 应用程序。今天我们将讨论如何使用 eclipse 远程 debug tomcat 和 websphere ...
【Tomcat远程Debug测试】是针对Java应用服务器Tomcat的一种调试方法,允许开发者在本地Eclipse环境中对运行在远程服务器上的Tomcat应用进行调试。以下是详细的步骤和知识点: 1. **配置Tomcat**: - **Windows系统...
至于`remote-debug.bat`,这是一个用于远程调试的批处理文件,它通常会调用已经配置好远程调试参数的`catalina.sh`或`catalina.bat`,并启动调试客户端,连接到之前设置的调试端口(如8000)。 总结来说,通过配置...
本文将详细讲解如何使用Eclipse这一流行的Java集成开发环境(IDE)进行远程Debug。Eclipse远程Debug功能允许开发者对运行在另一台机器上的应用程序进行调试,这对于分布式系统或者服务器端应用的调试尤其有用。 ...
远程调试是指在本地机器上调试部署在远程服务器上的Java应用程序。这对于分布式系统的开发尤为重要。 1. **本机作为客户端**: - 在远程服务器上启动Java程序时添加虚拟机参数以开启调试模式。 - 对于JDK 1.5以前...
在Eclipse中,打开Debug配置界面,选择"Remote Java Application"模板,填入远程服务器的信息(主机名、端口号),然后启动调试。当远程应用执行到断点处时,Eclipse会暂停并显示当前上下文,使得开发者可以查看...
### Java远程调试操作步骤 #### 一、准备工作 在进行Java远程调试之前,我们需要完成一些必要的准备工作,确保环境配置正确。 ##### 1.1 安装JCE无限制策略文件 根据描述中的“下载UnlimitedJCEPolicyJDK8”,这...
Java远程调试是一项强大的技术,它允许开发者在不同的设备或服务器上对Java应用程序进行调试,而无需实际坐在该设备前。这份“Java远程调试PPT”深入浅出地讲解了这一主题,包括JVM的调试模型、Eclipse的调试技巧、...
4. **-Xrunjdwp**:加载 JDWP (Java Debug Wire Protocol) 的 JPDA (Java Platform Debugger Architecture) 实现,它是 Java 官方提供的调试协议。 - **transport=dt_socket**:指定使用套接字传输方式进行通信。 ...
1. **JDK Debug工具**:Java Development Kit(JDK)内含强大的Java调试工具集(JDB),它是命令行工具,适用于基础的远程和本地调试。学习如何配置JDB,并使用其基本命令如`step`、`next`、`print`等进行单步执行、...
### 使用Tomcat+Eclipse进行远程Debug的详细步骤与配置 #### 一、前言 在软件开发过程中,尤其是Web应用的开发中,调试是必不可少的一个环节。为了更好地定位和解决问题,开发者经常需要对运行在服务器上的应用...
### JAVAECLIPSE 下配置 WINDCHILL 远程调试详解 #### 一、配置概述 本文档旨在详细介绍如何在 JavaEclipse 环境下配置 Windchill 进行远程调试的过程。远程调试是指在一个主机上调试运行在另一台机器上的应用程序...
这里的`debug`参数指示TongWeb以调试模式启动,而`49812`是远程调试的端口号。这个命令在启动参数中添加了`-Xrunjdwp`选项,它告诉JVM开启一个基于socket的远程调试接口,`transport=dt_socket`表示使用socket传输...
这意味着开发者可以在不离开Debug环境的情况下直接修改Java类,并且这些更改会立即生效。DCEVM支持JDK1.6及以上版本,并且主要支持Eclipse集成开发环境,尽管对于IDEA用户而言,目前还没有找到完美的解决方案。 ...