5

Eclipse (JDT) 调试模式中似乎不支持跟踪点。

这真的很糟糕,因为您有时可能想要打印大量调试信息,而不用硬编码的 println 弄乱您的代码,您以后可能会忘记这些信息。

我找到了一个简单的解决方法,并想与 SO 分享。

4

2 回答 2

9

Eclipse 支持条件断点。

您所要做的就是为它提供一个布尔表达式,它会很高兴。在这种情况下,一个静态方法也可以打印有用的东西作为副作用。

public class TracePointUtils {

  static private Logger logger = org.slf4j.LoggerFactory.getLogger(TracePointUtils.class);

  /** Produce a WARN message in SL4J logger */
  public static boolean trace(String msg, Object ... args) {
    logger.warn(format(msg, args));
    // Do not stop
    return false;
  }
}

在这里,我使用 SL4J 作为记录器,但普通的 println 就可以了。

然后,在代码中添加断点,并调用此静态方法作为条件: 跟踪点屏幕截图

瞧,您可以在控制台中享受美妙的痕迹。

于 2013-02-18T13:22:57.337 回答
3

仅作记录,Eclipse Oxygen 提供对跟踪点的支持:

http://www.eclipse.org/oxygen/noteworthy/#conditional-watchpoint

在菜单中单击似乎很乏味,我认为最好为Toggle Tracepoint命令创建一个键映射。

于 2017-09-17T10:29:32.113 回答