【问题标题】:Create breakpoint when a specific method is called调用特定方法时创建断点
【发布时间】:2019-06-08 01:13:54
【问题描述】:

我正在编写 Java 遗留代码(在 Eclipse 中)。它工作正常(它的输出是正确的);但是,它会打印一个额外的空白行。我想找到这条语句并删除它,但是代码中有很多System.out.print行,我无法一一检查。有没有办法让 Eclipse 调试器在调用 System.out.print 时暂停?这类似于在代码中的每个System.out.print 上放置断点(当到达这些行时,调试器将停止)。

【问题讨论】:

  • 我觉得不可能..
  • 我不确定调试器是如何工作的,但是如果他们可以逐步执行代码(或逐个字节码),指定方法(或其签名)并设置触发器似乎是可行的在它被调用之后。
  • 在像xcode这样的IDE中,符号断点就是你想要的。 stackoverflow.com/questions/13806200/…。但是不知道eclipse有没有这样的功能。

标签: java eclipse debugging


【解决方案1】:

我认为在 System.out#print 方法上设置断点应该可以正常工作。
jdk源码:

public void println(String x) {
    synchronized (this) {
        print(x);  // break point here
        newLine();
    }
}

【讨论】:

    【解决方案2】:

    我认为这是不可能的。但是为了解决您的问题,您可以在空白行上方看到 System.out.println 语句并在此处添加断点。

    这样您就可以更快地到达线路。

    【讨论】:

      【解决方案3】:

      你不能在代码中搜索行值吗?我的意思是,像 ctrl + f -> system.out.println(" ') // 或任何它打印的东西。然后注释所有结果行。

      我知道这可能很糟糕,但有时解决方案比看起来更简单。

      【讨论】:

        【解决方案4】:

        我认为你必须使用条件断点。您可以查看thisthis 可能也有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-15
          • 2011-10-06
          • 1970-01-01
          • 2011-10-18
          • 2018-08-04
          相关资源
          最近更新 更多