【问题标题】:Debug linked Java method调试链接的 Java 方法
【发布时间】:2016-04-05 14:02:16
【问题描述】:

我在调试 Java 代码时遇到了一些问题。我有一个 Rascal 模块,我从中调用链接的 Java 方法。这个 Java 方法包含几个 System.err.println 语句,如下所示:https://github.com/usethesource/rascal/wiki/Error-Reporting。 但是它们在哪里显示?当我从 Rascal 调试控制台执行 Rascal 代码并调用链接的 Java 方法时,不会显示消息。我什至在打印后直接刷新 System.err,但没有运气。我在这里做错了什么?

问候, 妮可

【问题讨论】:

    标签: java debugging reporting rascal


    【解决方案1】:

    System.err 很难,因为如果您没有从命令行控制台启动 Eclipse,Eclipse 会隐藏它。所以你应该按照https://github.com/usethesource/rascal/wiki/Error-Reporting的建议使用evaluator.getStdErr()

    首先扩展你的 Rascal 函数头以访问评估器上下文:

    @reflect{need access to stderr}
    @javaClass{path.to.MyClass}
    java int myFunction(int myParam);
    

    然后相应地更改您在 Java 中的接口并检索对错误流的引用:

    public class MyClass {
       public IValue myFunction(IInteger myParam, IEvaluatorContext ctx) {
          ctx.getStdErr().println("Hello Rascal!");
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      相关资源
      最近更新 更多