gpt4 book ai didi

java - javac 可以提供类的 "source debug extension information"属性吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:09 26 4
gpt4 key购买 nike

Java 类文件格式支持称为“源调试扩展”的属性(参见 Java language specification §4.7.11 "TheSourceDebugExtension attribute")。

在支持 JVMTI 这方面的 JVM 中,您可以使用 jvmtiError GetSourceDebugExtension(jvmtiEnv *, jclass, char **) 查询此字符串.

我的问题是是否有办法使用普通的javac 和Java 语言将“源调试扩展”信息嵌入到.class 文件中。在核心 Java 语言中似乎没有注释可以执行此操作(javadoc for java.lang.Annotation 中的“所有已知实现类”列表中没有明显的候选对象)。

最佳答案

该属性是由 JSR 45 添加的支持使用非 Java 语言进行调试。 JVM 本身不使用该属性的值;它用于调试工具。 The final release of that JSR描述 SourceDebugExtension 属性的动机如下:

SourceDebugExtension Support

Debugger applications frequently need debugging information about the source that exceeds what is delivered by the existing JavaTM Virtual Machine class file attributes (SourceFile, LineNumber, and LocalVariable). This is particularly true for debugging the source of other languages. In a distributed environment side files may not be accessible, the information must be directly associated with the class.

The solution is the addition of a class file attribute which holds a string; The string contains debugging information in a standardized format which allows for evolution and vendor extension.

鉴于此目的,javac 不太可能将任何内容放入该字段。还有另一个 StackOverflow 问题问 what JVM languages use the SMAP attribute .

关于java - javac 可以提供类的 "source debug extension information"属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25516850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com