当源代码中有一个非java文件(比如Groovy文件)时,Stackdriver调试接口会报错。
调试器的正常工作方式是将文件名和行号与类文件中包含的源文件和linenumber属性相匹配,所以我不确定为什么对非java源文件的支持被禁用。
有没有人"欺骗"界面接受非java文件(例如通过重命名),或者有任何关于谷歌是否计划增加支持的信息?
此限制是在Stackdriver Debugger Java代理中硬编码的。看到https://github.com/GoogleCloudPlatform/cloud-debug-java/blob/master/src/agent/internals/src/main/java/com/google/devtools/cdbg/debuglets/java/ClassPathLookup.java L186
限制的原因是代理是为java构建的。它理解Java条件和表达式(不理解其他语言的表达式)。可以修改代理以处理其他JVM语言,只需相对较少的更改。但是,文件:行与类文件中的信息非常匹配,并且表达式解析器被修改以匹配目标语言。