从J2SE 5.0开始,JPDA包括了服务提供器接口,允许对连接器与传送器实例进行开发与配置。这些服务提供器服务接口允许调试器和其它工具供应商开发新的连接器实例,并提供除Sun的套接字和共享内存以外的其它传送器装置。
被调试者与调试器之间的通信以连接为导向。因此,一方必须作为服务器,收听一个连接;另一方作为一个客户端连接到服务器。JPDA允许以调试应用程序和目标VM为服务器。
JPDA实际应用
如果你需要使用套接字传送器,在对应的JVM中以dt_socket为名确定自变量的类型。如果被调试者和调试器位于同一机器之中,且运行的是Windows系统,你可以使用名为dt_schmem的共享内存连接器。如果你希望用一个与JPDA兼容的调试器调试应用程序,你应在调试模式下运行调试器,并提交其它参数,如传送器类型、主机名称、端口号及其它信息。所有JPDA和调试参数必须在启动应用程序时作为自变量提交。
要进行调试,你必须将调试JDWP代理加载到应用程序的JVM中。从Java 5.0开始,你可以用-agentlib:jdwp选项来完成加载。5.0以前版本则使用-Xdebug和-Xrunjdwp选项(5.0也支持-Xdebug和-Xrunjdwp选项,不过新的-agentlib:jdwp选项更加好用。因为5.0中的JDWP代理使用JVMTI接口连接VM,而非旧的JVMDI接口)。你应该向-agentlib:jdwp(Java 5.0中)或-Xrunjdwp(Java 5.0以前版本) 参数提供子选项;两组可能的子选项相同。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/