JVM JPDA远程调试通用配置
来源:互联网 发布:在淘宝开一个店多少钱 编辑:程序博客网 时间:2024/03/29 23:31
JPDA简介
Java Platform Debugger Architecture(JPDA:Java平台调试架构) 由Java虚拟机后端和调试平台前端组成
1.Java虚拟机提供了Java调试的功能
2.调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试
JPDA的构架
JPDA通过两个接口和协议来完成如上的说明,分别是JVMTI(Java虚拟机工具接口)、JDWP(Java调试连线协议)和JDI(Java调试接口)。
1.JVMTI定义了虚拟机应该提供的调试服务,包括调试信息(Information譬如栈信息)、调试行为(Action譬如客户端设置一个断点)和通知(Notification譬如到达某个断点时通知客户端),该接口由虚拟机实现者提供实现,并结合在虚拟机中
2.JDWP定义调试服务和调试器之间的通信,包括定义调试信息格式和调试请求机制
3.JDI在语言的高层次上定义了调试者可以使用的调试接口以能方便地与远程的调试服务进行交互,Java语言实现,调试器实现者可直接使用该接口访问虚拟机调试服务。
总结一下,调试器 调用JDK提供的JDI实现 (JPDA front-end),经由JDWP协议 ,和JVM自带的JPDA back-end (jdwp.dll, jdwp.so, ...)进行通讯。JPDA back-end 通过调用JVM TI接口 ,从而获知调试信息,或发送控制命令。然后,JPDA back-end 将调试信息或命令执行结果,通过JDWP协议 ,返回给调试器 。
如何启用JPDA
默认情况下,JVM并没有启用JPDA back-end。需要在启动JVM的命令行加载以下参数:
-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y
1.-Xdebug:启用调试特性
2.-Xrunjdwp:启用JDWP实现,它包含若干子选项:
3.transport=dt_socket:JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
4.address=1321:JVM在1321端口上监听请求(自己设置)。
5.server=y:y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
6.suspend=y:y表示启动的JVM会暂停等待,直到调试器连接上(建议设置成n)。
Java Platform Debugger Architecture(JPDA:Java平台调试架构) 由Java虚拟机后端和调试平台前端组成
1.Java虚拟机提供了Java调试的功能
2.调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试
JPDA的构架
JPDA通过两个接口和协议来完成如上的说明,分别是JVMTI(Java虚拟机工具接口)、JDWP(Java调试连线协议)和JDI(Java调试接口)。
1.JVMTI定义了虚拟机应该提供的调试服务,包括调试信息(Information譬如栈信息)、调试行为(Action譬如客户端设置一个断点)和通知(Notification譬如到达某个断点时通知客户端),该接口由虚拟机实现者提供实现,并结合在虚拟机中
2.JDWP定义调试服务和调试器之间的通信,包括定义调试信息格式和调试请求机制
3.JDI在语言的高层次上定义了调试者可以使用的调试接口以能方便地与远程的调试服务进行交互,Java语言实现,调试器实现者可直接使用该接口访问虚拟机调试服务。
总结一下,调试器 调用JDK提供的JDI实现 (JPDA front-end),经由JDWP协议 ,和JVM自带的JPDA back-end (jdwp.dll, jdwp.so, ...)进行通讯。JPDA back-end 通过调用JVM TI接口 ,从而获知调试信息,或发送控制命令。然后,JPDA back-end 将调试信息或命令执行结果,通过JDWP协议 ,返回给调试器 。
如何启用JPDA
默认情况下,JVM并没有启用JPDA back-end。需要在启动JVM的命令行加载以下参数:
-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y
1.-Xdebug:启用调试特性
2.-Xrunjdwp:启用JDWP实现,它包含若干子选项:
3.transport=dt_socket:JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
4.address=1321:JVM在1321端口上监听请求(自己设置)。
5.server=y:y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
6.suspend=y:y表示启动的JVM会暂停等待,直到调试器连接上(建议设置成n)。
0 0
- JVM JPDA远程调试通用配置
- JVM JPDA Tomcat远程调试配置
- JPDA WEBLOGIC远程调试
- Java远程调试-JPDA
- java jpda远程调试
- JPDA远程调试
- jpda tomcat远程调试
- JVM远程DEBUG(JPDA )
- jpda 远程调试 java程序
- 使用Eclipse JPDA远程调试Java程序
- tomcat linux 下无使jpda远程调试
- linux下的java远程调试jpda+tomcat
- linux下的java远程调试jpda+tomcat
- IDEA利用JPDA远程调试运行在tomcat中的程序
- 使用JPDA远程debug
- jvm远程调试
- JVM远程调试
- 远程jvm调试-备份
- SuperMap iObject常见问题解答集锦(六)
- 安装Linux Fedora发行版中的问题以及fedora PPPOE联网问题
- Android Studio2.0 教程从入门到精通MAC版 - 提高篇
- Android —— 日常Error(ing)
- Linux 异步IO介绍--相关函数
- JVM JPDA远程调试通用配置
- Unity--PlayerPrefs某种意义上的全局变量
- 删除目录下(包括子目录)某天的文件
- Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException
- ANDROID模拟器访问本地WEB应用10.0.2.2
- Genymotion横竖屏切换及调节分辨率大小
- 我国人口预计 15 年内是会逐渐分散在大中小城市,还是继续向大城市集中?我们应留在大城市发展吗?
- The Rise of Worse is Better
- 高质量C++/C编程指南(林锐)