2009-10-14 40 views

回答

1

您可能会喜欢阅读this它很好地解释了这一点。你正在寻找的位是RemoteStackFrame,这就是事物如何可以得到的东西目前在范围内

它是一个复杂的主题,但我希望这有助于。

1

如果你使用Eclipse,你可以使用提供与Eclipse JDT API。如果您要创建Plugin项目,这些将可用。

1

IDE通常使用一个调试API的组合,比如由[Java Platform Debugger Architecture] [1]提供的调试API,它是关于它正在调试的代码结构的知识。

读取本地变量的值(即使在调试时),也要求使用调试信息编译类文件。在Java中(和许多其他语言一样),必须显式生成调试信息,以便在运行时访问它。特别是局部变量和从字节码到源行号的映射。

[JDI] [2] api相当容易实现一个简单的调试器。但是,如果你正在寻找的是某种局部变量的反映,那么你运气不好。

我唯一能想到的最后一种情况是使用某种字节码操作库,如[BCEL] [3]或[ASM] [4],并在加载它之前修改字节码以允许您访问运行时的变量值。

这肯定会减慢代码并且难以实现。如果你退后一步思考,最终可能会更容易避免这个问题。

(抱歉错位链接,但StackOverflow的是限制的链路的数目)

[1]:HTTP:// java.sun.com/javase/technologies/core/toolsapis/jpda/ [2 ]:http://java.sun.com/javase/6/docs/jdk/api/jpda/jdi/index.html [3]:http://jakarta.apache.org/bcel/ [4] :http:// asm.ow2.org/

相关问题