【发布时间】:2021-07-23 16:19:24
【问题描述】:
所以Java的调试接口使用JVMTI作为后端......但是JVMTI需要在目标架构上编译,那么JDI使用的这些JVMTI函数是否预编译并作为库随JDK一起提供?这意味着我可以在不使用 JDI 的情况下使用那些预编译的库……对吗?我假设只有少数函数已经编译,但如果我需要这些函数,那么我不需要自己编译它们的麻烦......
【问题讨论】:
标签: java jvm jvm-hotspot jvmti jdi
所以Java的调试接口使用JVMTI作为后端......但是JVMTI需要在目标架构上编译,那么JDI使用的这些JVMTI函数是否预编译并作为库随JDK一起提供?这意味着我可以在不使用 JDI 的情况下使用那些预编译的库……对吗?我假设只有少数函数已经编译,但如果我需要这些函数,那么我不需要自己编译它们的麻烦......
【问题讨论】:
标签: java jvm jvm-hotspot jvmti jdi
看Java Platform Debugger Architecture:
/ |--------------|
/ | VM |
debuggee ----( |--------------| <------- JVM TI - Java VM Tool Interface
\ | back-end |
\ |--------------|
/ |
comm channel -( | <--------------- JDWP - Java Debug Wire Protocol
\ |
|--------------|
| front-end |
|--------------| <------- JDI - Java Debug Interface
| UI |
|--------------|
jdwp 代理是一个本地库,当然是为每个平台单独编译的。 该库包含在标准 JDK 包中。因此,平台相关部分已经由 JDK 提供。
【讨论】: