调试链接 Java 方法

Debug linked Java method

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

此致, 妮可

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!");
   }
}