- 浏览: 1056948 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
nieanan:
感谢,很有帮助。
eclipse 改变JAVA_HOME路径 -
Orange_killer:
写的什么东西,文不对题
Hibernate Search大数据量手动建立索引 -
xiaoasha:
org.eclipse.equinox.servlet.api ...
《OSGI实战》遇到的问题 -
powertech:
写的挺细,有用!
SyntaxError: Non-ASCII character Python、Unicode和中文 -
huang_yong:
public class XMLUtil {
pri ...
XStream 去除生成的XML节点的class="list"
原文地址:http://www.blogjava.net/yongbing/articles/221179.html
首先,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
Websphere
1. Configure Websphere application server. In administraction console, click Servers->Application
servers->server name->Debug service(Right down corner). Check
"Enable service at server startup", remain default values for others. After this, you need to restart application server. To test if
the debug service is started, you can use netstat -a to see if the port
you set is now being listened. 2. Configure Eclipse Click Run->Debug..->Remote Java Application(in the left
tree), then click new. Change the Host, Port to what you have
configured in the Websphere application server. Don't worry about the current class(used as the debug name), there is no main class actually. After configuration, run this debug. This will create a
connection with the remote debug service.(You can see it using netstat
-a in the remote server) 3. Debug Set breakpoint in Eclipse. Run your application in the application server and running will pause when break point reached. Reference: Websphere administration console help http://www-128.ibm.com/developerworks/cn/linux/opensource/os-ecbug/
发表评论
-
SelectionKey.attachment() returns null
2011-09-17 15:49 5744写NIO程序的时候遇到了SelectionKey.attach ... -
Eclipse远程调试Weblogic运行的源代码
2010-11-25 20:53 1731看过许多远程调试的 ... -
jsp:include 找不到*.do的解决方法
2010-11-15 16:18 4038由于要兼容以前的一个系统,不得已自己实现了一个filter,通 ... -
ArrayList from HashMap values
2010-10-09 14:47 1567Is there a way to cast HashMap ... -
hibernate mapping boolean field
2010-09-15 16:34 1355有一个属性: private boolean isPe ... -
LinkedHashMap测试
2010-09-13 10:26 1452Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序 ... -
Myeclipse 8.5 配置SVN
2010-09-13 10:25 4358很早以前用过VSS的人都知道,相比之下SVN的确是个好东东。他 ... -
Myeclipse配置插件
2010-09-13 10:24 1399我们在用Myeclipse进行开 ... -
Java 调用 Eclipse的编译器 JDT
2010-08-31 11:48 3134Java 调用 Eclipse的编译器 JDT 想给项 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法(转)
2010-08-05 14:45 1404java.lang.OutOfMemoryError: P ... -
如何得到JDBC Insert 语句执行后插入Oracle 数据库记录的主键
2010-07-15 17:18 2081在应用中,很多时候会对表的主键用一个自动增涨的数来付值,如Or ... -
让iBatis中的insert返回主键 [ibatis insert 返回 自增主键]
2010-07-13 23:05 3843让iBatis中的insert返回主键 [ibatis i ... -
eclipse 改变JAVA_HOME路径
2010-07-12 12:54 15431让eclipse.ini中-vm选项指向一个已安装的jdk并且 ... -
Tomcat6 class load order
2010-05-20 15:47 1212Therefore, from the perspective ... -
修改Java系统默认编码
2010-05-10 14:56 9123通过以下代码可以修改动态当前正在运行的java系统默认编码格式 ... -
java编码格式总结
2010-05-07 13:46 4189乱码一直是一个很让人头疼的问题,这次往oracle的Blob里 ... -
SWT Table单选按钮实现
2010-05-03 01:01 3469table_short = new Table (compos ... -
eclipse 下tomcat出现did not find a matching property
2010-04-15 15:15 1952Software : apache-tomcat-6 ... -
Hibernate Search大数据量手动建立索引
2010-04-02 08:51 5764刚刚看了Hibernate Search,想要写个程序试着使用 ... -
WTP配置JNDI
2010-03-17 10:54 1328想要在WTP环境下面配置JNDI,有两种方式,一种是在Ser ...
相关推荐
在Eclipse中,选择“Run” -> “Debug Configurations…”,然后在“Remote Java Application”部分新建一个配置,填写服务器IP和刚才设置的调试端口,点击Debug按钮,就可以如同调试本地代码一样进行远程调试了。...
### Java工程师应用技术汇总 #### 一、基础篇 ##### 1.1 JVM **1.1.1 Java内存模型** - **Java内存模型(JMM)**:JMM是Java虚拟机规范的一部分,用于定义程序执行过程中的内存一致性模型。它确保了线程之间的...
7. Android生命周期:理解各个Activity状态和生命周期方法是避免内存泄漏的关键。 8. 多线程:使用AsyncTask或Handler进行异步操作,提高用户体验。 9. 自定义View:根据需求定制自己的UI组件。 10. 通知和...
### 《哪吒面经》Java经典面试题汇总知识点概览 #### 一、Java基础知识 ##### 1. 跨平台性 - **定义**:跨平台性是指编写的Java程序能够在不同的操作系统(如Windows、Linux、MacOS等)上运行,而无需针对每个平台...
JPDA常用于远程调试、自动化测试、性能分析等场合,特别适合分布式系统或云环境中的Java应用调试。 6. **源码分析:** 在“DemoCode”中,可能包含了利用JPDA进行调试的示例代码。通过分析这些代码,我们可以了解...
Linux命令行提供了高效、强大的工具,可以帮助开发者进行项目管理、调试、系统监控等任务。以下是一些Java开发中常用的Linux命令,它们对于优化开发流程至关重要。 1. **ls**:列出目录内容。`ls -l` 可以查看详细...
### Java编程24小时训练营知识点汇总 #### 一、引言 《Java编程24小时训练营》是一本非常适合Java初学者的教材。本书通过精心设计的课程安排,帮助读者在有限的时间内掌握Java编程的基础知识及进阶技能。本书不仅...
Java水晶报表,全称为Crystal Reports for Java,是一种用于创建、设计和展示复杂报表的软件工具。该工具由Business Objects公司(现为SAP的一部分)开发,特别适合与Java应用程序集成,提供丰富的报告功能,帮助...
- **Java Debug Interface (JDI)**:提供了一个高级编程接口,用于远程调试,自Java 1.4版本起全面支持高速调试。 ### 实现决策 在决定实施路径时,Rich和Chad分别承担了不同的任务: - **Rich负责JDWP的实现**:...
11. **CSDN 活动 - Java 学习资源汇总** - [http://events.csdn.net/ymy/imooc.com1/index.html](http://events.csdn.net/ymy/imooc.com1/index.html) - **知识点**:收集了一些Java在线课程和学习资源。 12. **...
总结,这个基于SpringBoot的在线远程考试系统利用Java技术和SSM框架,构建了一个高效稳定的考试平台。通过数据库设计和功能实现,系统不仅能满足基本的考试需求,还能确保数据的安全和系统的稳定运行。对于学习者来...
书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) PDF格式扫描版,全书分为24章,共817页。2011年1月出版。 全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为...
SSH2(Secure Shell 2)是一种广泛用于网络服务的安全协议,...这个汇总包中的jar文件是经过调试和测试的,可以确保在各种场景下的稳定运行,对于需要在Java应用中实现SSH2功能的开发者来说,是一个非常有价值的资源。
文档“gwt.doc”可能涵盖了GWT的基本概念,如模块系统(Module System)、事件处理(Event Handling)、UI构建(UI Building)和远程服务调用(Remote Procedure Calls, RPC)。GWT模块系统允许开发者组织和管理应用...
这个项目的主要目标是在我们有高延迟网络连接时有机会远程调试 JVM。 当基于 GUI 的 IDE 调试器与远程服务器互操作时,它们会收到大量小数据包 - 当前 JVM 上下文。 此上下文包含堆栈帧、当前类的“this”变量、...
本文将详细解析MapReduce在实现WordCount案例中的原理、步骤以及如何通过Java进行编程,并涵盖本地提交和远程调用的不同部署方式。 1. **MapReduce基本原理** MapReduce分为两个主要阶段:Map阶段和Reduce阶段。...
7. **运行配置**:Eclipse提供多种运行配置,如Java应用程序、JUnit测试、远程Java应用等。在“运行”菜单下创建和管理这些配置,可以指定主类、VM参数、工作目录等。 8. **调试配置**:Eclipse的调试工具强大且...