我一直认为,一旦您的Java源代码被编译,则将变量映射到堆栈位置.此外,它们可能在类文件中包含有关变量名称及其范围的信息,但这是可选的AFAIK.
问题是-我的Eclipse / IDEA IDE如何允许我设置包含局部变量名称的监视表达式?对我来说,很难理解:)
解决方法:
所有这些IDE的调试服务都基于JavaTM Platform Debugger Architecture (JPDA).
更准确地说,它们都使用Java Virtual Machine Tool Interface (JVM TI),它从JDK5代替了实验性的JVMPI(Java虚拟机概要分析接口).
该JVMTI包括Watched Field function和SetFieldModificationWatch function.
但这不包括局部变量:实际上从现在开始已有一个RFE:bug 4228507.
因此,在局部变量的情况下,可能会使用某种类型的BCI(字节码工具)(例如TPTP Eclipse module does).