java debugging - 观察超出范围的变量

时间:2011-09-13 02:44:57

标签: java debugging jvm jpda

在调试C / C ++应用程序时,我可以创建一个转换为指针类型的地址的监视,然后查看结构的内容,即使它超出范围。是否有可能在Java中实现类似的东西?
让我说我是一个方法,我添加一个类似“& this”的东西,然后当我离开类方法时,我仍然可以看到它的内容,即使它超出了范围?

我很确定我的问题的答案是“不”,所以我最感兴趣的是“为什么不呢?”说明。这是JVM的限制吗? JPDA限制?有没有更好的地方可以提出这样一个专门的问题?

2 个答案:

答案 0 :(得分:1)

在C / C ++中,您正在观察(指向的区域)一个任意指针,转换为该变量。

在Java中没有指针。您只能watch一个变量。超出范围它不存在。

为什么要观看呢?如果你把手表放在上面,它会在范围内正确观察。

答案 1 :(得分:0)

您无法观看不在范围内的变量。

但是,如果找到另一个指向它的变量,则可以观察同一个对象。

观察一个没有被引用的对象是没有意义的(它不会以任何方式影响程序执行,它不能再被更改,它将被垃圾收集并且内存被完全不同的东西重用)。 / p>

Java级调试工具仍然可以在JVM内存管理之上工作,因此您需要对对象进行有效引用,不能只查看随机内存区域。