2

Eclipse 支持条件断点,当条件为真时在特定行中断。

它还支持在访问/修改给定变量时立即中断的观察点,而不管导致修改的行。

我将如何创建一个条件观察点,以便它在修改给定变量的任何一行并且条件为真时中断?

例如:在变量 X 上设置一个 MODIFY 观察点,以便它仅在 X 设置为 > 1000 的值时中断

编辑:假设一个字段可以从许多不同的方法中更改,可能在不同的包中。可以想象,可以在这些位置中的每一个位置创建一个条件断点,以便在条件为真时中断。但是,这个变量被触及的位置可能很多,并且放置断点的位置相当低效(从人类的角度来看)。另一种方法是观察点,它会在任何时候修改字段时自动中断,无论它是从代码中的何处修改的。但是,我不知道只有在满足条件时才会中断观察点的方法。

4

2 回答 2

1

在这种情况下,为什么不创建一个条件断点“当真时暂停”并作为条件

X > 1000 && (your other condition)
于 2014-10-22T07:08:35.840 回答
0

我不确定在断点选项中是否可以实现您想要的 - 但是一个简单的解决方法是:

要添加一个保存原始值的新变量,然后使用它来创建具有所需影响的断点检查。

int originalValue = value;

然后在断点内:

value != originalValue && value > 1000

当值发生变化并且大于 1000 时,将触发此断点。

编辑:如果您试图在代码中找到可能发生此类更改的随机位置,那么我建议只有一种方法:

使有问题的变量private并强制对它的所有引用都通过 getter/setter 方法。然后你只需要在setter方法中添加一个断点,然后你会很快找到你要找的东西。

于 2014-10-22T07:17:11.387 回答