【问题标题】:Is there a possibility to break on every object reference in eclipse debugger?是否有可能打破 Eclipse 调试器中的每个对象引用?
【发布时间】:2010-10-01 02:50:11
【问题描述】:

假设我有一堂课

public class MyClass {

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

    //and many methods here

}

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

【问题讨论】:

    标签: java eclipse debugging


    【解决方案1】:

    是的。您可以在表达式处设置断点

    private String propString;
    

    断点得到另一个符号并显示工具提示“Watchpoint [Acess and modify]”

    当调试器处于步进模式时,您可以使用 Shift+Ctrl+I 查看所选变量名称的值。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        我有一段时间没有使用 Eclipse,但据我所知,这至少在 Callisto 版本中是可能的。如果您在包含声明的行设置断点,然后进入该断点的高级属性,我相信您可以设置该变量的 modification 和 access 选项.

        编辑:我刚刚检查了 Eclipse Europa。它确实像我想的那样广泛使用。当您在变量上设置断点时,它被称为 watch 点;并且在“断点属性”页面(可以通过右键单击空白处的断点小玩意访问,也可能以其他方式访问),您可以确定调试器是否应该在“字段访问”和“字段修改”处停止。在您的情况下,您希望选择第一个。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-04-17
          • 1970-01-01
          • 2014-09-07
          • 2017-05-20
          • 1970-01-01
          • 2013-07-15
          • 2016-12-23
          • 1970-01-01
          相关资源
          最近更新 更多