java调试体系

  |   0 评论   |   1,929 浏览

Java Instrumentation


JPDA:Java平台调试体系结构

JPDA(Java Platform Debugger Architecture),即Java平台调试体系结构,由三个规范组成,分别是JVMTI(JVM Tool Interface),JDWP(Java Debug Wire Protocol),JDI(Java Debug Interface)。





进一步阅读列表

1. JPDA 体系概览

2. 深入Java调试体系


JVMTI:Java 虚拟机工具接口

JVMTI(JVM Tool Interface)是 Java 虚拟机所提供的 native 编程接口,可以实现在不修改业务代码的条件下,对业务代码进行调试和性能分析。


JVMTI的原理和使用方式为:定制一个Agent,在Agent中实现需要的函数指针。JVM运行时,会先启动Agent,再启动业务代码。业务代码运行到对应的接口时,会回调用Agent中的接口实现。


进一步阅读列表:

1. JVMTI 和 Agent 实现

2. 基于jvmti方式加密java

3. JVMTI开发教程之一个简单的Agent


JDWP:Java 调试线协议

JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。


在被调试端,JDWP实现了一个JVMTI agent,在JVM启动时加载agent,来通过JVMTI接口实现各种调试debug工作。


在调试器端,只要实现了JDWP规范,无论是什么语言,都可以来debugger。


JDI(Java Debug Interface)就是一个调试器端的JDWP的实现。


JDK中的调试工具jdb,也是使用JDI,来实现调试的。


进一步的阅读列表:

1. JDWP 协议及实现


JDI:Java调试接口

JDI(Java Debug Interface),即Java调试接口。大多数的JDI是用Java实现的,如eclipse IDE中的org.eclipse.jdt.debug.ui 和 org.eclipse.jdt.debug插件。


进一步的阅读列表

1. Java 调试接口(JDI)

Multi-tenant

Java multi-tenant,即Java多租户技术,即在一个JVM中运行多个应用程序。

优点:通过部署来避免通常与使用多个标准 JVM 有关的内存消耗

限制:JNI,JVMTI和GUI程序,目前没有受到多租户的JDK的支持。


进一步的阅读列表:

1. Java 多租户简介





评论

发表评论

validate