Eclipse中的跟踪点

时间:2013-02-18 13:22:57

标签: java eclipse debugging trace

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

这实在是太糟糕了,因为您可能有时想要打印大量的调试信息而不会使用您可能会在以后忘记的硬编码println混乱您的代码。

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

2 个答案:

答案 0 :(得分:8)

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就可以了。

然后,在代码中添加断点,并将此静态方法称为条件: tracepoints screenshot

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

答案 1 :(得分:2)

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

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

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