java 框架调试_JAVA 调试框架(JPDA)简介

JPDA 是一个多层的调试框架,包括 JVMDI、JDWP、JDI 三个层次。JAVA 虚拟机提供了 JPDA 的实现。其开发工具作为调试客户端,可以方便的与虚拟机通讯,进行调试。Eclipse 正是利用 JPDA 调试 JAVA 应用,事实上,所有 JAVA 开发工具都是这样做的。SUN JDK 还带了一个比较简单的调试工具以及示例。

JVMDI 定义了虚拟机需要实现的本地接口

JDWP 定义了JVM与调试客户端之间的通讯协议

调试客户端和JVM 既可以在同一台机器上,也可以远程调试。JDK 会包含一个默认的实现 jdwp.dll,JVM 允许灵活的使用其他协议代替 JDWP。SUN JDK 有两种方式传输通讯协议:Socket 和共享内存(后者仅仅针对 Windows),一般我们都采用 Socket 方式。

你可以用下面的参数,以调试模式启动JVM

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

-Xrunjdwp  JVM 加载 jdwp.dll

transport=dt_socket  使用 Socket 传输

address  表示调试端口号

server=y  表示 JVM 作为服务器,建立 Socket

suspend=n  表示启动过程中,JVM 不会挂起去等待调试客户端连接

JDI 则是一组JAVA接口

如果是一个 JAVA 的调试客户端,只要实现 JDI 接口,利用JDWP协议,与虚拟机通讯,就可以调用JVMDI了。

下图为 JPDA 的基本架构:

Components  Debugger Interface

/  |-----------------------|

/  |  VM  |

debuggee ----(  |-----------------------| 

\  |  back-end  |

\  |-----------------------|

/  |

comm channel -(  | 

\  |

|---------------------|

| front-end  |

|---------------------| 

|  UI  |

|---------------------|

参见:http://java.sun.com/j2se/1.4.2/docs/guide/jpda/architecture.html

Eclipse作为一个基于 JAVA 的调试客户端,利用 org.eclipse.jdt.debug Plugin 提供了JDI 的具体实现。JDI 接口主要包含下面 4 个包 com.sun.jdi com.sun.jdi.connect com.sun.jdi.event com.sun.jdi.request

本文不对 JDI 进行深入阐述,这里重点介绍 JDI 中与断点相关的接口。

com.sun.jdi

主要是JVM(VirtualMachine) 线程(ThreadReference) 调用栈(StackFrame) 以及类型、实例的描述。利用这组接口,调试客户端可以用类似类反射的方式,得到所有类型的定义,动态调用 Class 的方法。

com.sun.jdi.event

封装了JVM 产生的事件, JVM 正是将这些事件通知给调试客户端的。例如 BreakpointEvent 就是 JVM 执行到断点的时候,发出的事件;ClassPrepareEvent就是 Class 被加载时发出的事件。

com.sun.jdi.request

封装了调试客户端可以向 JVM发起的请求。例如 BreakpointRequest 向 JVM 发起一个添加断点的请求;ClassPrepareRequest 向 JVM 注册一个类加载请求,JVM 在加载指定 Class 的时候,就会发出一个 ClassPrepareEvent 事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
7_目标跟踪_jpda.zip是一个文件的压缩包,其中包含了用于目标跟踪的JPDA(Joint Probabilistic Data Association)算法的相关资料和代码。 目标跟踪是指在一个连续的时间序列中,通过分析目标在图像或视频中的位置和运动信息,来估计目标的状态和轨迹。JPDA是一种常用的目标跟踪算法,通过动态分配和更新目标的标识,能够有效地处理目标交叉、遮挡和丢失的情况。 在7_目标跟踪_jpda.zip中,可能包含以下内容: 1. 研究论文或说明文档:介绍JPDA算法的原理、推导过程、核心思想以及扩展应用等方面的内容。这些文档可能包含数学公式、实验结果和案例分析等,有助于理解和运用该算法。 2. 源代码:该压缩包可能包含用于实现JPDA算法的源代码文件。这些代码可能是用不同编程语言(如MATLAB或Python)编写的,用于实现JPDA算法的各个步骤,包括目标检测、数据关联、轨迹预测和状态更新等。 3. 示例数据:为了帮助使用者理解和测试JPDA算法,压缩包中可能包含一些示例数据集。这些数据集可能是从真实场景或仿真模拟中采集的,包括目标的位置、速度、加速度等信息,用于输入JPDA算法并观察输出结果。 4. 实验结果:为了验证JPDA算法的性能和准确性,压缩包中可能包含一些实验结果。这些结果可能以图表、表格或文本形式呈现,用于评估JPDA算法在不同场景下的跟踪效果,并与其他算法进行比较。 总之,7_目标跟踪_jpda.zip是一个包含了JPDA算法相关资料和代码的压缩包,提供了研究和实践JPDA算法的资源,有助于目标跟踪领域的学习和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值