【问题标题】:Tracepoints in EclipseEclipse 中的跟踪点
【发布时间】:2013-02-18 13:22:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: java eclipse debugging trace


    【解决方案1】:

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

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

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

    【讨论】:

    • 其实你甚至不需要创建一个方法。只需在条件中写System.out.println("XXX"); return false;即可。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 2010-12-09
      • 2015-04-09
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多