我一直认为在编译Java源代码后,varibales会映射到堆栈位置;此外,它们可能包含有关变量名称及其在类文件中的范围的信息,但这是可选的AFAIK。
问题是 - 我的Eclipse / IDEA IDE如何允许我设置包含本地变量名的监视表达式?对我来说,很难理解:)
答案 0 :(得分:3)
所有这些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)。