# `SourceDebugExtension Class File Attribute`

Java virtual machine class file attributes are described in section 4.7 of the The Java Virtual Machine Specification. The definition of the added attribute is in the context of The Java Virtual Machine Specification:

The `SourceDebugExtension` attribute is an optional attribute in the `attributes` table of the `ClassFile` structure. There can be no more than one `SourceDebugExtension` attribute in the `attributes` table of a given `ClassFile` structure.

The `SourceDebugExtension` attribute has the following format:

        SourceDebugExtension_attribute {
           u2 attribute_name_index;
           u4 attribute_length;
           u1 debug_extension[attribute_length];
        }

The items of the `SourceDebugExtension_attribute` structure are as follows:

`attribute_name_index`
  The value of the `attribute_name_index` item must be a valid index into the `constant_pool` table. The `constant_pool` entry at that index must be a `CONSTANT_Utf8_info` structure representing the string `"SourceDebugExtension"`.

`attribute_length`
  The value of the `attribute_length` item indicates the length of the attribute, excluding the initial six bytes. The value of the `attribute_length` item is thus the number of bytes in the `debug_extension[]` item.

`debug_extension[]`
  The `debug_extension` array holds a string, which must be in UTF-8 format. There is no terminating zero byte.

  The string in the `debug_extension` item will be interpreted as extended debugging information. The content of this string has no semantic effect on the Java Virtual Machine.

Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved. Please send comments to: java-debugger@sun.com |