java / eclipse中的数据断点

当用VS开发C ++的时候,你有这个惊人的数据断点特性,当内存中的某个地址的数据发生变化时会触发数据断点。

在eclipse中开发java时有没有类似的function?

谢谢!

编辑:关于“挂起时值改变”function:我的印象是,执行必须仍然到达断点所在的线。 事情是我想让它触发的任何地方,只要值的变化。

您可以在一个字段上设置一个观察点:将光标放在声明字段的那一行,然后selectRun -> Toggle Watchpoint
或者只需双击该行的左边空白处设置断点。

您可以在添加后更改观察点的属性,如suspend on field accesssuspend on field modification 。 只需右键单击左边空白处的观察点并selectBreakpoint Properties...

search关于观察点的帮助以获取更多信息:

观察点是一个特殊的断点,只要给定expression式的值发生变化就停止应用程序的执行,而不指定可能出现的位置。 …

使用variables视图:

  • 右键单击该字段并select“切换观察点”,然后
  • 再次右键单击相同的实例并select“Instance breakpoints …”(实例断点…),该实例断点允许您将特定断点限制为给定实例。

请注意,性能可能不如内存硬件断点(比如在VC ++中)。

在断点属性下,您可以select使其成为条件并检查单选button“值更改时挂起”。

右键单击断点并selectBreakpoint properties

在开始屏幕中,select: Conditional -> Suspend when value changes

最接近的是编辑断点属性。 您可以添加条件来检查不同的值。 另一种方法可能是为setter方法添加一个断点。

您可以通过右键单击断点视图中已经设置的断点来设置断点属性。

据我所知,在Eclipse中没有这样的通用function。 但是,您可以给现有的断点提供一些条件:

在你的代码中添加一个断点。 然后,在“断点”视图中,右键单击它,然后select“断点属性”。 在面板中,可以添加必须validation的条件,以使应用程序在此断点处停止(例如, if (foo > 0) )。

这不完全是你想要的,但我不认为Eclipse提供这样的function。