是否有可能在eclipse调试器中打破每个对象引用?

时间:2009-01-13 11:03:39

标签: java eclipse debugging

假设我有一个班级

public class MyClass {

    private Set<String> set = new HashSet<String>();

    //and many methods here

}

是否有可能在使用set成员的每一行停止使用eclipse调试器?

3 个答案:

答案 0 :(得分:16)

我暂时没有使用Eclipse,但据我记得,这至少可以在Callisto版本中使用。如果在包含声明的行上设置断点,然后进入该断点的高级属性,我相信您可以为该变量的修改访问设置选项

编辑:我刚用Eclipse Europa查看过。它按照我的想法广泛运作;在变量上设置断点时,断点被称为 watch 点;并且在“断点属性”页面中(可通过右键单击边界中断点的小玩意,可能以其他方式访问),您可以确定调试器是否应停止“字段访问”和“字段修改”。在您的情况下,您希望选择第一个。

答案 1 :(得分:2)

是。您可以在表达式

处放置断点
private String propString;

断点获取另一个符号并显示工具提示“Watchpoint [Acess and modification]”

Whith Shift + Ctrl + I当调试器处于步进模式时,您可以观察所选变量名的值。

当调试器处于步进模式时,您还可以在运行时更改变量值。

eclipse调试器是一个非常有用和强大的工具。

答案 2 :(得分:2)

这从一开始就是eclipse调试器的一部分。您只需在声明变量的行处设置断点。要获得更多控制,您可以右键单击断点并选择断点属性,您可以在其中设置是否仅在“访问”或“修改”上停止。

请记住,修改实际上是值类型的值的更改以及引用类型的引用更改。例如,如果在HashMap上设置修改断点(观察点),那么如果将项添加到此哈希映射中,调试器将不会停止,因为添加项不会更改变量的地址/引用。