在Location class的Java调试器接口文档中,有一段讨论该位置的“层”。我一直在寻找更多有关如何实现新层(例如,Scala或JRuby)的细节,但我没有找到太多。任何人都可以对这个话题有所了解吗?
答案 0 :(得分:3)
Strata不适合Scala或JRuby,因为它们直接编译为字节码,因此SourceFile和LineNumberTable属性就足够了。 Strata适用于像JSP这样的东西,它们被翻译成Java源文件并被编译。层由存储在SourceDebugExtension属性中的源映射(SMAP)定义。这一切如何运作的细节是JSR-45的一部分。另一个例子是State Machine Compiler虽然我不认为它会产生SMAP。我也不确定javac是否可以选择在类文件中嵌入SMAP。然后,您需要一个单独的工具。