如何在Eclipse Java调试器中跟踪变量的值

如何在Eclipse Java调试器中跟踪变量的值,java,eclipse,debugging,Java,Eclipse,Debugging,我想在Eclipse调试器中跟踪布尔(非布尔)变量的值 我需要知道它何时发生变化,为此,我需要在整个执行过程中跟踪它的价值;不仅是在范围内 更具体地说:我有一个类(我们称之为myClass),它有一个名为isAvailable的布尔成员变量。我的程序实例化4或5个myClass对象。我希望在执行结束时,所有对象的isAvailable值都设置为true。与我的例外相反,myClass对象之一的isAvailable设置为false。我需要知道哪些方法(在很多方法中)正在将isAvailable设

我想在Eclipse调试器中跟踪布尔(非布尔)变量的值

我需要知道它何时发生变化,为此,我需要在整个执行过程中跟踪它的价值;不仅是在范围内


更具体地说:我有一个类(我们称之为
myClass
),它有一个名为
isAvailable
的布尔成员变量。我的程序实例化4或5个
myClass
对象。我希望在执行结束时,所有对象的
isAvailable
值都设置为
true
。与我的例外相反,
myClass
对象之一的
isAvailable
设置为false。我需要知道哪些方法(在很多方法中)正在将
isAvailable
设置为false。

在方法中设置一个断点以设置
isAvailable
的值


当遇到断点时,您可以检查整个执行堆栈。您还可以检查对象并确定4或5个实例中的哪一个是相关的。

您有权访问该类所在的代码吗

不要使用变量use setters和getter来访问它,而是在setter上放置一个断点

如果您只需要知道它何时更改,请放置一个条件断点,并使表达式类似于:

available != this.available
假设您的setter采用以下格式:

public void setAvailable(boolean available){
    this.available = available;
}
设置断点后,右键单击断点符号可以获得条件断点

以下是有关条件断点的常见问题解答:
您可以在成员字段上设置观察点。观察点类似于断点,在访问或修改字段时暂停执行(您可以配置要停止的条件)。请看

好吧,我认为这可能是一个好方法,但我没有编写代码(我只是在修复bug),这是一个庞大的项目,有很多很多类,所以在花几个小时编辑代码之前,我会尝试一些更自动化的方法!设置断点不需要修改代码,只需访问源代码……Setter为您提供了一个访问点,如果您无法编辑代码,您可以在访问变量的每一行代码上设置条件断点。但是,如果许多其他类在没有setter的情况下访问原始变量,那么您的代码会受到紧耦合的影响,因此可能需要重新分解以使用setter/getter。谢谢大家的回答。我可以访问代码,但类中没有设置器可用于isAvailable。因此,在添加setter并更改每个访问变量的类或在每个访问变量的方法中添加断点之前,我将尝试不同的方法。。。如果什么都不起作用,我会尝试按照你的建议,并会让你知道它是如何进行的!您无法配置要停止的条件。@mjaggard,是的,您可以。创建一个观察点,在Breakpints视图中选择它,然后您会看到用于在访问和修改时停止的复选框。选择要停止的条件。当此变量等于7时,我可以在哪里选择停止?我们如何在android studio中做到这一点