首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果JVMTI不是,Java的JDI如何跨平台?

如果JVMTI不是,Java的JDI如何跨平台?
EN

Stack Overflow用户
提问于 2021-04-30 10:00:31
回答 1查看 102关注 0票数 2

因此,Java的调试接口是使用JVMTI作为一个backend....but,JVMTI需要在目标体系结构上编译,这些JVMTI函数也是JDI预编译并随JDK作为库附带的吗?这意味着我可以不用JDI...is就可以使用那些预编译的库,对吗?我假设只有少数几个函数已经编译好了,但是如果我确实需要这些函数,那么我就不需要亲自编译它们了.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-30 11:34:30

看看Java平台调试器架构

代码语言:javascript
复制
                /    |--------------|
               /     |     VM       |
 debuggee ----(      |--------------|  <------- JVM TI - Java VM Tool Interface
               \     |   back-end   |
                \    |--------------|
                /           |
 comm channel -(            |  <--------------- JDWP - Java Debug Wire Protocol
                \           |
                     |--------------|
                     | front-end    |
                     |--------------|  <------- JDI - Java Debug Interface
                     |      UI      |
                     |--------------|
  • JDI工作在JDWP之上;
  • 从JVM端来看,JDWP是由jdwp代理提供的,它使用JVM TI与JVM通信。

jdwp代理是一个本机库,当然是为每个平台分别编译的。库包含在标准的JDK包中。因此,特定于平台的部分已经由JDK提供。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67331913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档