在堆栈跟踪中显示 Xtend 源代码行号
Displaying Xtend source line numbers in stack traces
因为 Xtend 代码被编译为 Java,堆栈跟踪包含生成的 Java 源代码的行号,而不是原始 Xtend 源代码:
package test
class Main
{
def static void main(String[] args)
{
method // line #7
}
def static method()
{
throw new RuntimeException // Line #12
}
}
堆栈跟踪:
Exception in thread "main" java.lang.RuntimeException
at test.Main.method(Main.java:10)
at test.Main.main(Main.java:6)
我的问题:是否可以通过某种方式在堆栈跟踪中显示 Xtend 行号?
我问是因为先浏览Java代码不太舒服,然后找出相应的Xtend代码(尤其是没有IDE)。
此外(理论上)生成的 Java 代码可能不会签入 SCM 系统。
不幸的是,如果没有 IDE,目前无法做到这一点。如果您使用 Eclipse,您可以 copy/paste 堆栈跟踪到 Java 堆栈跟踪控制台(控制台视图中打开控制台按钮旁边的下拉菜单)然后,当您单击堆栈跟踪的任何部分时,它会带您到 xtend 源中的适当位置 - 无需从生成的 java 源手动回溯它。
因为 Xtend 代码被编译为 Java,堆栈跟踪包含生成的 Java 源代码的行号,而不是原始 Xtend 源代码:
package test
class Main
{
def static void main(String[] args)
{
method // line #7
}
def static method()
{
throw new RuntimeException // Line #12
}
}
堆栈跟踪:
Exception in thread "main" java.lang.RuntimeException
at test.Main.method(Main.java:10)
at test.Main.main(Main.java:6)
我的问题:是否可以通过某种方式在堆栈跟踪中显示 Xtend 行号?
我问是因为先浏览Java代码不太舒服,然后找出相应的Xtend代码(尤其是没有IDE)。
此外(理论上)生成的 Java 代码可能不会签入 SCM 系统。
不幸的是,如果没有 IDE,目前无法做到这一点。如果您使用 Eclipse,您可以 copy/paste 堆栈跟踪到 Java 堆栈跟踪控制台(控制台视图中打开控制台按钮旁边的下拉菜单)然后,当您单击堆栈跟踪的任何部分时,它会带您到 xtend 源中的适当位置 - 无需从生成的 java 源手动回溯它。