Java Platform Debugger Architecture(JPDA:Java平台调试架构)--由Java虚拟机后端和调试平台前端组成,Java虚拟机提供了Java调试的功能,而调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试。
JPDA通过两个接口和协议来完成如上的说明,分别是
JVMTI(Java虚拟机工具接口)、
JDWP(Java调试连线协议)和
JDI(Java调试接口)。
JVMTI定义了虚拟机应该提供的调试服务,包括
调试信息(Information譬如栈信息)、
调试行为(Action譬如客户端设置一个断点)和
通知(Notification譬如到达某个断点时通知客户端),该接口由虚拟机实现者提供实现,并结合在虚拟机中。
JDWP定义调试服务和调试器之间的通信,包括定义调试信息格式和调试请求机制;而JDI在语言的高层次上定义了调试者可以使用的调试接口以能方便地与远程的调试服务进行交互,Java语言实现,调试器实现者可直接使用该接口访问虚拟机调试服务。
JDI(Java Debug Interface)是 JPDA 三层模块中最高层的接口,定义了调试器(Debugger)所需要的一些调试接口。基于这些接口,调试器可以及时地了解目标虚拟机的状态,例如查看目标虚拟机上有哪些类和实例等。另外,调试者还可以控制目标虚拟机的执行,例如挂起和恢复目标虚拟机上的线程,设置断点等。
目前,大多数的 JDI 实现都是通过 Java 语言编写的。比如,Java 开发者再熟悉不过的 Eclipse IDE,它的调试工具相信大家都使用过。它的两个插件 org.eclipse.jdt.debug.ui 和 org.eclipse.jdt.debug 与其强大的调试功能密切相关,其中 org.eclipse.jdt.debug.ui 是 Eclipse 调试工具界面的实现,而 org.eclipse.jdt.debug 则是 JDI 的一个完整实现。
当虚拟机的调试服务运行时,虚拟机作为调试的服务提供端,监听一个连接,而调试器通过该连接与虚拟机进行交互。目前,Windows平台的JVM提供了两种方式的连接:
共享内存和
Socket连接
共享内存的服务提供端和调试端只能位于同一台机。
而Socket连接则支持不同异机调试,即远程调试。
http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/
http://www.ibm.com/developerworks/cn/java/j-lo-jpda2/index.html
http://www.ibm.com/developerworks/cn/java/j-lo-jpda3/index.html?ca=drs-cn-0903
https://www.ibm.com/developerworks/cn/java/j-lo-jpda4/
http://www.ibm.com/developerworks/cn/java/j-lo-jdi/
分享到:
相关推荐
使用 Eclipse 平台进行调试 - Java - JavaEye论坛
Java调试是开发者日常工作中不可或缺的一部分,它涉及到对代码的深入理解和问题排查能力。在Java编程过程中,遇到程序出错或运行异常时,调试是找出问题源头的关键步骤。本文将详细介绍Java调试的一些核心技术和方法...
Java调试体系及协议是开发和优化Java应用程序的关键组成部分。它为开发者提供了深入理解代码执行流程、定位和修复问题的能力。本文将深入探讨Java Platform Debugger Architecture (JPDA),这是Java调试的基础,以及...
《Visual Studio Code的Java调试器深度解析》 Visual Studio Code(VS Code)作为一款轻量级但功能强大的源代码编辑器,已经成为了许多开发者的选择,尤其是对于Java开发来说,其集成的Java调试器更是提升了开发...
JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),...
总的来说,这个压缩包为Java开发者提供了一套完整的串口调试解决方案,包括了Java实现的串口读取工程、跨平台的串口调试工具以及必要的驱动程序,是进行串口通信开发和调试的实用资源。用户在使用时,应按照readMe....
Java UDP调试工具是一种用于测试和调试UDP(User Datagram Protocol)网络通信的应用程序。UDP是一种无连接的传输协议,常用于需要高效传输且对数据完整性要求不高的场景,如在线视频流、实时游戏等。该工具通常包含...
Java JavaScript 引擎调试JS代码是一项关键技能,特别是在开发混合型应用或利用Java与JavaScript进行交互的场景下。本文将深入探讨如何使用Nashorn JavaScript引擎进行JS代码的调试。 Nashorn是Java 8引入的一个...
Java调试技巧,特别是针对Eclipse的调试方法,是Java开发者必备的技能之一。在Java编程中,多线程编程是一个重要且复杂的主题,因为它允许程序同时执行多个任务,提高CPU的利用率,尤其对于网络和交互式应用至关重要...
JPDA----java调试体系 JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java ...
如果你发现你的代码在本地运行良好,但是一旦上测试环境、预发布环境或生产环境就出现问题,那么可以执行JAVA远程调试,以彻底搞清楚为什么一上生产环境就会出现问题,本教程就是介绍如何实现JAVA远程调试,即如何在...
在IT行业中,接口调试是开发和测试人员日常工作中不可或缺的一部分,尤其对于Java接口的调试,有多种工具可供选择。本文将详细介绍两种广受欢迎的工具——JMeter和Postman,帮助你了解它们的特点和使用方法。 首先...
该程序包集成最新的Nginx(1.16.1)+MySQL(5.7.16)+PHP(7.2.28)+phpMyAdmin+Tomcat(8.5.53),一次性安装,无须配置即可使用,是非常方便、好用的PHP、Java调试环境。
### Java远程调试操作步骤 #### 一、准备工作 在进行Java远程调试之前,我们需要完成一些必要的准备工作,确保环境配置正确。 ##### 1.1 安装JCE无限制策略文件 根据描述中的“下载UnlimitedJCEPolicyJDK8”,这...
Java串口通讯是Java编程领域中的一个重要组成部分,它允许程序通过串行端口与外部设备进行数据交换,如传感器、打印机、GPS等。串口调试助手则是开发过程中用于测试和诊断串口通信问题的工具,它能帮助开发者直观地...
Java WebService调试工具是开发和测试基于Web Service应用程序的重要辅助工具。这些工具使得开发者能够方便地发现、调用和测试Web Service接口,从而确保服务的正确性和效率。在本文中,我们将深入探讨Web Service的...
Java 断点调试的各种方法 断点调试是 Java 程序员经常用的调试技术,通过设置断点,可以在代码运行到某一特定位置时停止,方便开发者检查和 debug 代码。下面将详细介绍 Java 断点调试的各种方法。 1. 条件断点 ...