【发布时间】:2010-10-01 02:50:11
【问题描述】:
假设我有一堂课
public class MyClass {
private Set<String> set = new HashSet<String>();
//and many methods here
}
是否有可能使 Eclipse 调试器在使用 set 成员的每一行处停止?
【问题讨论】:
假设我有一堂课
public class MyClass {
private Set<String> set = new HashSet<String>();
//and many methods here
}
是否有可能使 Eclipse 调试器在使用 set 成员的每一行处停止?
【问题讨论】:
是的。您可以在表达式处设置断点
private String propString;
断点得到另一个符号并显示工具提示“Watchpoint [Acess and modify]”
当调试器处于步进模式时,您可以使用 Shift+Ctrl+I 查看所选变量名称的值。
当调试器处于单步模式时,您还可以在运行时更改变量值。
eclipse 调试器是一个非常有用且功能强大的工具。
【讨论】:
这从一开始就是 eclipse 调试器的一部分。您只需在声明变量的行设置断点。要获得更多控制,您可以右键单击断点并选择断点属性,如果您只想在访问或修改时停止,您可以在其中设置。
请记住,修改实际上是值类型的值的变化和引用类型的引用的变化。例如,如果您在 HashMap 上设置修改断点(观察点),那么如果您将项目添加到此哈希图中,调试器将不会停止,因为添加项目不会更改变量的地址/引用。
【讨论】:
我有一段时间没有使用 Eclipse,但据我所知,这至少在 Callisto 版本中是可能的。如果您在包含声明的行设置断点,然后进入该断点的高级属性,我相信您可以设置该变量的 modification 和 access 选项.
编辑:我刚刚检查了 Eclipse Europa。它确实像我想的那样广泛使用。当您在变量上设置断点时,它被称为 watch 点;并且在“断点属性”页面(可以通过右键单击空白处的断点小玩意访问,也可能以其他方式访问),您可以确定调试器是否应该在“字段访问”和“字段修改”处停止。在您的情况下,您希望选择第一个。
【讨论】: