SourceDebugExtension属性は、ClassFile構造体のattributes表のオプション属性です。 特定のClassFile構造体のattributes表には、1つのSourceDebugExtension属性しか含めることができません。
SourceDebugExtension属性の形式は次のとおりです。
SourceDebugExtension_attribute {
u2 attribute_name_index;
u4 attribute_length;
u1 debug_extension[attribute_length];
}
SourceDebugExtension_attribute構造体の項目は次のとおりです。
attribute_name_index
attribute_name_index項目の値は、constant_pool表への有効な索引にする必要があります。 その索引では、constant_poolエントリを文字列「SourceDebugExtension」を表すCONSTANT_Utf8_info構造体にする必要があります。
attribute_length
attribute_length項目の値は、属性の長さ(先頭の6バイトを除く)を示します。 したがって、attribute_length項目の値はdebug_extension[]項目のバイト数です。
debug_extension[]
debug_extension配列には文字列が格納されます。この文字列は、UTF-8形式で指定する必要があります。 終端のゼロ・バイトはありません。
debug_extension項目の文字列は、拡張されたデバッグ情報として解釈されます。 この文字列の内容によって、Java仮想マシン上のセマンティクは影響を受けません。
|