领测软件测试网
软件测试技术门户9z0gSl'yQ;n:vW(zJPDA概念将调试过程分为两部分:被调试的程序(被调试者-debuggee)和JDI。JDI一般为一个调试应用程序的用户接口(或Java IDE的一部分)。被调试的应用程序在后端运行,而JDI在前端运行。在前端与后端之间有一个通信通道运行JDWP协议;因此,被调试程序与调试器可以位于同一个系统内,也可位于不同的系统中。
软件测试技术门户?cX:\x+y软件测试技术门户H\/rE(SRA+g&g4Awy 从开发者的角度,一个调试应用程序可进入任何JPDA层面。因为JDI是最高层,也最容易使用,我们推荐使用这个接口。假设一家公司用JDI开发了一个调试器。公司能够把它用于参考实例中,它将自动与VM和Sun支持的平台协同工作,因此大多数IDE供应商采用这种方式。还可以这样,例如,参考实例在前端运行,被调试者运行另一家公司执行JDWP(它可能运行或忽略JVMTI)的VM。
软件测试技术门户}^0c[:Jcf \F6AX
W~G6Kyw&N 一些调试器可能建立在较低层面之上,如JDWP(例如,如果Java没有编写前端)或JVMTI(针对需要低级功能的专用调试器)。
软件测试技术门户&ZV*_}O
OZ5DcESa 调试器的后端负责由调试器前端向被调试者VM传输请求,如“告诉我变量X的值”;它还负责向前端传输对这些请求(包括像到达断点之类的预计事件)的响应。后端与前端利用JDWP通过一个通信通道进行通信。后端与被调试者VM利用JVMTI进行通信。
*]!{ T-Ug EuHx~ 通信通道连接调试器的前端与后端。可以认为它由两个装置组成:一个连接器和一个传送器。连接器是一个JDI对象,它在前端与后端建立连接;可能有三种类型的连接器:
软件测试技术门户%lz*jHh*o8E/|5_&HV9]pw{!?:u 收听型:前端从后端收听一个进入的连接。
({)^s-f4`1y,V软件测试技术门户&P!iQP4Z5i` 依附型:前端依附到一个已运行的后端上。
l+M ^'GXoko-yPR8V$^`a 发布型:前端发布运行被调试者代码和后端的Java过程。
NQaw$BDCF;{f