java - Eclipse/IDEA/等如何。调试器获取有关局部变量值和监视表达式值的信息?

标签 java eclipse debugging intellij-idea

我一直认为,一旦编译了 Java 源代码,变量就会映射到堆栈位置;此外,它们可能在类文件中包含有关变量名称及其范围的信息,但这是可选的 AFAIK。

问题是 - 我的 Eclipse/IDEA IDE 如何允许我设置包含局部变量名称的监视表达式?对我来说,这很难理解:)

最佳答案

所有这些 IDE 的调试服务都基于 JavaTM Platform Debugger Architecture (JPDA) .
更准确地说,他们都在使用 Java Virtual Machine Tool Interface (JVM TI) ,它取代了 JDK5 的实验性 JVMPI(Java 虚拟机分析接口(interface))。

JVMTI 包含一个 Watched Field function和一个 SetFieldModificationWatch function .

但是那不包括局部变量:实际上有一段时间以来打开了一个 RFE:bug 4228507 .
所以在局部变量的情况下,机会是某种 BCI使用(字节码分析)(如 TPTP Eclipse module does )。

关于java - Eclipse/IDEA/等如何。调试器获取有关局部变量值和监视表达式值的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2892572/

相关文章:

java - 你能解释一下,这些实例化对象的方式有什么不同吗?

Java-为ImageDescriptor设置相对地址

c++ - Eclipse 找不到我的 C/C++ MinGW 工具链

android - 将 Android 项目从 Eclipse 迁移到 Android Studio 后找不到属性文件

vb.net - 获取 Debug模式下的工作表计数 - MS Excel PIA

Java Hangman Oop 静态、非静态

java - hibernate : convert mysql Query Datedif to HQL Query

java - 以分钟为单位返回的时间的正确后缀 - Android

python - 在 Python 中有条件地评估调试语句

php - 如何调试 Silex Framework 中的 php fatal error