JDWP

简介:   JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。

 

 

JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。
JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI)。

JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。
JDWP 协议介绍
这里首先要说明一下 debugger 和 target vm。Target vm 中运行着我们希望要调试的程序,它与一般运行的 Java 虚拟机没有什么区别,只是在启动时加载了 Agent JDWP 从而具备了调试功能。
而 debugger 就是我们熟知的调试器,它向运行中的 target vm 发送命令来获取 target vm 运行时的状态和控制 Java 程序的执行。
Debugger 和 target vm 分别在各自的进程中运行,他们之间的通信协议就是 JDWP。
JDWP 与其他许多协议不同,它仅仅定义了数据传输的格式,但并没有指定具体的传输方式。这就意味着一个 JDWP 的实现可以不需要做任何修改就正常工作在不同的传输方式上(在 JDWP 传输接口中会做详细介绍)。
JDWP 是语言无关的。理论上我们可以选用任意语言实现 JDWP。然而我们注意到,在 JDWP 的两端分别是 target vm 和 debugger。
Target vm 端,JDWP 模块必须以 Agent library 的形式在 Java 虚拟机启动时加载,并且它必须通过 Java 虚拟机提供的 JVMTI 接口实现各种 debug 的功能,所以必须使用 C/C++ 语言编写。
而 debugger 端就没有这样的限制,可以使用任意语言编写,只要遵守 JDWP 规范即可。
JDI(Java Debug Interface)就包含了一个 Java 的 JDWP debugger 端的实现(JDI 将在该系列的下一篇文章中介绍),JDK 中调试工具 jdb 也是使用 JDI 完成其调试功能的。

 

http://www.ibm.com/developerworks/cn/java/j-lo-jpda3/index.html

http://blog.csdn.net/mike_caoyong/article/details/7943458

 

相关文章
|
应用服务中间件
快速解决idea启动项目报错:Unable to open debugger port(127.0.0.1:58950):java.net.SocketException“socket closed
快速解决idea启动项目报错:Unable to open debugger port(127.0.0.1:58950):java.net.SocketException“socket closed
1357 0
|
10月前
|
Linux Windows
FinalShell连接Linux虚拟机报错java.net.ConnectException: Connection timed out: connect(亲测有效)
FinalShell连接Linux虚拟机报错java.net.ConnectException: Connection timed out: connect(亲测有效)
1781 0
|
8月前
|
网络协议 Java
如何在Java中使用Socket编程实现TCP连接?
在Java中,通过Socket编程实现TCP连接非常常见。以下演示了基本的TCP通信流程,可根据具体需求进行扩展。
386 0
|
网络协议 Java
Java TCP和UDP网络通信协议的详解
Java TCP和UDP网络通信协议的详解
144 0
|
存储 网络协议 Java
【Java】网络编程--Socket与TCP网络通信编程
文章目录 写在前面 1 Socket 2 TCP网络通信编程 2.1 TCP字节流编程 2.1.1 案例:客户端发送数据,服务端接收并显示 2.1.2 案例进阶:双向通信 2.2 TCP字符流编程 2.3 网络上传文件
【Java】网络编程--Socket与TCP网络通信编程
|
Java
IDEA 出现问题:JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509)解决方案(JAVA 小虚竹)
IDEA 出现问题:JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509)解决方案(JAVA 小虚竹)
882 0
IDEA 出现问题:JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509)解决方案(JAVA 小虚竹)
|
网络协议 安全 数据安全/隐私保护
|
监控 Java 测试技术