对非 Java JVM 语言使用 Stackdriver 调试
Using Stackdriver debug for non-Java JVM languages
当您的源代码中有非 java 文件(例如 Groovy 文件)时,Stackdriver 调试界面会报错。
调试器通常的工作方式是将文件名和行号与 class 文件中包含的源文件和行号属性相匹配,所以我不确定为什么支持非 java 源文件被禁用。
有没有人有幸 "tricking" 接口接受非 java 文件(例如通过重命名它们),或者有关于 Google 是否计划添加支持的任何信息?
此限制已硬编码在 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 语言,而更改相对较少。但是,file:lines 与 class 文件中的信息非常匹配,并且表达式解析器已修改以匹配目标语言。
当您的源代码中有非 java 文件(例如 Groovy 文件)时,Stackdriver 调试界面会报错。
调试器通常的工作方式是将文件名和行号与 class 文件中包含的源文件和行号属性相匹配,所以我不确定为什么支持非 java 源文件被禁用。
有没有人有幸 "tricking" 接口接受非 java 文件(例如通过重命名它们),或者有关于 Google 是否计划添加支持的任何信息?
此限制已硬编码在 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 语言,而更改相对较少。但是,file:lines 与 class 文件中的信息非常匹配,并且表达式解析器已修改以匹配目标语言。