调试链接 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!");
}
}
我在调试 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!");
}
}