Eclipse (JDT) 调试模式中似乎不支持跟踪点。
这真的很糟糕,因为您有时可能想要打印大量调试信息,而不用硬编码的 println 弄乱您的代码,您以后可能会忘记这些信息。
我找到了一个简单的解决方法,并想与 SO 分享。
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 就可以了。
然后,在代码中添加断点,并调用此静态方法作为条件:
瞧,您可以在控制台中享受美妙的痕迹。
仅作记录,Eclipse Oxygen 提供对跟踪点的支持:
http://www.eclipse.org/oxygen/noteworthy/#conditional-watchpoint
在菜单中单击似乎很乏味,我认为最好为Toggle Tracepoint
命令创建一个键映射。