JPDA(Java Platform Debugger Architecture)提供了JVM内部的访问接口,让我们可以方便地了解JVM内部的状态,可以在此基础上构建调试、性能剖析的平台。
JPDA包括2个接口定义和1个通信协议:
- JVM TI(JVM Tool Interface):定义了JVM提供给外部可以访问的服务,此接口以C/C++的方式提供。利用JDK5开始提供的java.lang.instrutment包,我们可以使用Java语言实现JVM TI中的字节码增强的功能。
- JDWP(Java Debug Wire Protocol):定义了调试器和被调试的应用之间通信的协议JDI(Java Debug Interface):定义了调试客户端可以使用的接口,使用Java语言实现。
Components Debugger Interfaces
/ |--------------|
/ | VM |
debuggee ----( |--------------| <------- JVM TI - Java VM Tool Interface
\ | back-end |
\ |--------------|
/ |
comm channel -( | <--------------- JDWP - Java Debug Wire Protocol
\ |
|--------------|
| front-end |
|--------------| <------- JDI - Java Debug Interface
| UI |
|--------------|
JPDA架构上分成3块:
- 被调试应用:就是debuggee,被调试的应用在内部嵌入一个back-end,一方面back-end通过JVM TI接口访问到VM的内部信息,另一方面,back-end通过某种Transport(通信方式,譬如Sun JVM提供了socket和shmem的Transport)为外部提供了服务。
- 通信协议:调试客户端和被调试方通过某种通信方式进行数据的交互,而JDWP定义了交互的数据的格式
- 调试客户端:调试客户端通过front-end与back-end进行通信,front-end可以理解为JDI接口的实现,调试UI(譬如Eclipse的调试器)通过JDI接口最终访问到服务端的信息
需要注意的是,如上仅仅是调试上的主要架构,JVM TI层不仅仅提供了调试性的接口,也提供了一些可以用于性能剖析的接口。性能剖析一般很多工具在架构上也类似于如上,在被剖析VM上运行Agent(类似于如上中的back-end),而剖析Client(友好的UI功能)连接到Agent上采集数据,只不过在这个过程当中,通信管道协议不一定会使用JDWP,而客户端也可能会是通过一种工具专有的协议从远程获取到剖析信息。
分享到:
相关推荐
JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),...
JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),...
基于JPDA的Java软件性能测试.pdf
使用JPDA进行Java程序远程调试使用JPDA进行Java程序远程调试使用JPDA进行Java程序远程调试使用JPDA进行Java程序远程调试
文档内详细介绍了java的调试体系--JPDA,包括其接口,以及一些与虚拟机相关的知识
多目标跟踪JPDA算法实现,是学习JPDA算法的经典代码,建议下载下来看看。
JPDA(JavaPlatformDebuggerArchitecture)是Java平台调试体系结构的缩写,通过JPDA提供的API,开发人员可以方便灵活的搭建Java调试应用程序。JPDA主要由三个部分组成:Java虚拟机工具接口(JVMTI),Java调试线协议...
采用JPDA数据关联算法实现两个个匀速运动目标的点迹与航迹的关联。上传的为压缩文件,解压后有两个m文件,一个是Data_JPDAF.m,另一个是JPDAF.m。将两个文件放到Matlab的同一个目录下,直接运行文件Data_JPDAF.m即可...
联合概率数据互联JPDA是数据关联算法之一,它的基本思想是:对应于观测数据落入跟踪门相交区域的情况,这些观测数据可能来源于多个目标。JPDA的目的在于计算观测数据与每一个目标之间的关联概率,且认为所有的有效...
matlab简单实现多目标跟踪的JPDA算法,供初学者参考
数据关联的JPDA算法 程序运行正常 注释详尽
数据关联的经典算法JPDA,包含杂波环境。
能实现多目标跟踪中数据关联,对每个目标设置合适的跟踪门,在跟踪门内认为增加杂波产生数据
采用JPDA数据关联算法实现两个匀速运动目标的点迹与航迹的关联
Adaptation (JPDA) approach, to replace the frequently-used joint maximum mean discrepancy metric in transfer learning. During the distribution adaptation, JPDA improves the transferability between ...
JPDA的matlab程序.pdf
多传感器/多目标跟踪的JPDA数据关联算法,在密集杂波环境下