课程咨询 :186-8884-0703

深圳Java培训 > 达内新闻 > Java调试体系JPDA和JVMTI
  • Java调试体系JPDA和JVMTI

    发布:深圳Java培训      来源:达内新闻      时间:2015-12-23

  • Java虚拟机设计了专门的API接口供调试和监控虚拟机使用,被称为Java平台调试体系即Java Platform Debugger Architecture(JPDA)。JPDA按照抽象层次,又分为三层,分别是

    JVM TI - Java VM Tool Interface

    虚拟机对外暴露的接口,包括debug和profile

    JDWP - Java Debug Wire Protocol

    调试器和应用之间通信的协议

    JDI - Java Debug Interface

    Java库接口,实现了JDWP协议的客户端,调试器可以用来和远程被调试应用通信

    用一个不是特别准确但是比较容易理解的类比,大家可以和HTTP做比较,可以推断他就是一个典型的C/S应用,所以也可以很自然的想到,JDI是用TCP Socket和虚拟机通信的,后面会详细再介绍。

    IDE+JDI = 浏览器

    JDWP = HTTP

    JVMTI = RESTful接口

    Debugee虚拟机= REST服务端

    和其他的Java模块一样,Java只定义了Spec规范,也提供了参考实现(Reference Implementation),但是第三方完全可以参照这个规范,按照自己的需要去实现其中任意一个组件,原则上除了规范上没有定义的功能,他们应该能正常的交互,比如Eclipse就没有用Sun/Oracle的JDI,而是自己实现了一套(由于开源license的兼容原因),因为直接用JDWP协议调用JVMTI是不会受GPL“污染”的。的确有第三方调试工具基于JVMTI做了一套调试工具,这样效率更高,功能更丰富,因为JDI出于远程调用的安全考虑,做了一些功能的限制。用户还可以不用JDI,用自己熟悉的C或者脚本语言开发客户端,远程调试Java虚拟机,所以JPDA真个架构是非常灵活的。

    Java调试体系JPDA和JVMTI

    JVMTI

    JVMTI是整个JPDA中最中要的API,也是虚拟机对外暴露的接口,掌握了JVMTI,你就可以真正完全掌控你的虚拟机,因为必须通过本地加载,所以暴露的丰富功能在安全上也没有太大问题。更完整的API内容可以参考JVMTI SPEC:

    虚拟机信息

    堆上的对象

    线程和栈信息

    所有的类信息

    系统属性,运行状态

    调试行为

    设置断点

    挂起现场

    调用方法

    事件通知

    断点发生

    异步调用

    在JPDA的这个图里,agent是其中很重要的一个模块,正是他把JDI,JDWP,JVMTI三部分串联成了一个整体。简单来说agent的特性有

    C/C++实现的

    被虚拟机以动态库的方式加载

    能调用本地JVMTI提供的调试能力

    实现JDWP协议服务器端

    与JDI(作为客户端)通信(socket/shmem等方式)

    【更多JAVA资讯JAVA培训新闻请关注深圳JAVA培训sz.java.tedu.cn】

    ========深圳达内学院联系方式========

    深圳达内联系QQ:1548888884

    咨询电话:400-0755-581

    学校网址:http://sz.java.tedu.cn

    扫描二维码加入我们的微信平台,微信号1:tarenaz

    微信号2:sz_tarena

    联系地址:深圳市宝安中心区宝源路1053号资信达大厦401室

上一篇:Java调试概述

下一篇:Java 爬虫框架——SeimiCrawler V0.2.5

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:2月15日

Java--零基础周末班

Java--零基础周末班

开班日期:2月15日

Java--大数据全日制班

Java--大数据全日制班

开班日期:2月15日

Java--大数据周末班

Java--大数据周末班

开班日期:2月15日

  • 地址:深圳市宝安区共乐路西乡商会大厦10楼——深圳JAVA培训中心宝安校区
    深圳市龙岗区横岗力嘉路2013文化创客园A栋——深圳JAVA培训中心龙岗校区
  • 课程培训电话:186-8884-0703 全国免费咨询热线:400-827-0010
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56