【问题标题】:Using Stackdriver debug for non-Java JVM languages对非 Java JVM 语言使用 Stackdriver 调试
【发布时间】:2016-06-29 11:28:46
【问题描述】:

当您的源代码中有非 java 文件(例如 Groovy 文件)时,Stackdriver 调试界面会报错。

调试器通常的工作方式是将文件名和行号与类文件中包含的源文件和行号属性相匹配,所以我不确定为什么禁用了对非 java 源文件的支持。

是否有人幸运地“欺骗”了接口以接受非 java 文件(例如通过重命名它们),或者有任何关于 Google 是否计划添加支持的信息?

【问题讨论】:

    标签: google-app-engine stackdriver google-cloud-debugger


    【解决方案1】:

    此限制在 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 与类文件中的信息非常匹配,并且表达式解析器已修改以匹配目标语言。

    【讨论】:

    • 很遗憾看到这样的任意限制,使用 Java 条件和表达式来调试 Scale、Groovy、Clojure 等代码将是完全理智的,每一种像样的 JVM 语言都会吐出具有适当行号的类属性。
    • 这将为查看是否可以欺骗平台提供一个起点(您“只”需要重命名存储库分支中的类属性和文件)。我明白为什么 Google 不希望对任何语言都提供全面支持,但希望他们有一天会测试流行的 JVM 语言是否可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 2014-01-13
    • 2012-02-02
    相关资源
    最近更新 更多