APIdia Launch Partner
Top Description Methods
sun.jvm.hotspot.debugger.win32.coff

public Interface COFFSymbol

Known Direct Implementers
sun.jvm.hotspot.debugger.win32.coff.COFFFileParser.COFFFileImpl.COFFHeaderImpl.COFFSymbolImpl

Describes a COFF symbol. (Some of the descriptions are taken directly from Microsoft's documentation and are copyrighted by Microsoft.)

Method Summary

Modifier and TypeMethod and Description
public AuxBfEfRecord
getAuxBfEfRecord()

This should only be called if isBfOrEfSymbol returns true.

public AuxFileRecord
getAuxFileRecord()

This should only be called if isFile returns true.

public AuxFunctionDefinitionRecord
getAuxFunctionDefinitionRecord()

This should only be called if isFunctionDefinition returns true.

public AuxSectionDefinitionsRecord
getAuxSectionDefinitionsRecord()

This should only be called if isSectionDefinition returns true.

public AuxWeakExternalRecord
getAuxWeakExternalRecord()

This should only be called if isWeakExternal returns true.

public String
public byte
getNumberOfAuxSymbols()

Number of auxiliary symbol table entries that follow this record.

public int
getOffset()

Offset within the file of this record.

public short
getSectionNumber()

Signed integer identifying the section, using a one-based index into the Section Table.

public byte
getStorageClass()

Enumerated value representing storage class.

public short
getType()

The Type field of a symbol table entry contains two bytes, each byte representing type information.

public int
getValue()

Value associated with the symbol.

public boolean
isBfOrEfSymbol()

Indicates whether this symbol is a .bf or .ef symbol record and is therefore followed by an sun.jvm.hotspot.debugger.win32.coff.AuxBfEfRecord.

public boolean
isFile()

Indicates whether this symbol has storage class FILE and is therefore followed by a sun.jvm.hotspot.debugger.win32.coff.AuxFileRecord.

public boolean
isFunctionDefinition()

Indicates whether this symbol is a function definition: storage class EXTERNAL (2), a Type value indicating it is a function (0x20), and a section number greater than zero.

public boolean
isSectionDefinition()

Indicates whether this symbol defines a section and is therefore followed by an sun.jvm.hotspot.debugger.win32.coff.AuxSectionDefinitionsRecord.

public boolean
isWeakExternal()

Indicates whether this symbol is a weak external and is therefore followed by an sun.jvm.hotspot.debugger.win32.coff.AuxWeakExternalRecord.

Method Detail

getAuxBfEfRecordback to summary
public AuxBfEfRecord getAuxBfEfRecord()

This should only be called if isBfOrEfSymbol returns true.

getAuxFileRecordback to summary
public AuxFileRecord getAuxFileRecord()

This should only be called if isFile returns true.

getAuxFunctionDefinitionRecordback to summary
public AuxFunctionDefinitionRecord getAuxFunctionDefinitionRecord()

This should only be called if isFunctionDefinition returns true.

getAuxSectionDefinitionsRecordback to summary
public AuxSectionDefinitionsRecord getAuxSectionDefinitionsRecord()

This should only be called if isSectionDefinition returns true.

getAuxWeakExternalRecordback to summary
public AuxWeakExternalRecord getAuxWeakExternalRecord()

This should only be called if isWeakExternal returns true.

getNameback to summary
public String getName()
getNumberOfAuxSymbolsback to summary
public byte getNumberOfAuxSymbols()

Number of auxiliary symbol table entries that follow this record. (FIXME: the APIs below which fetch such an auxiliary symbol are only currently capable of fetching the first one.)

getOffsetback to summary
public int getOffset()

Offset within the file of this record. (FIXME: Now that we have the auxiliary records exposed, it may not be necessary to expose this.)

getSectionNumberback to summary
public short getSectionNumber()

Signed integer identifying the section, using a one-based index into the Section Table. Some values have special meaning defined in sun.jvm.hotspot.debugger.win32.coff.COFFSymbolConstants.

getStorageClassback to summary
public byte getStorageClass()

Enumerated value representing storage class. See sun.jvm.hotspot.debugger.win32.coff.COFFSymbolConstants under the IMAGE_SYM_CLASS constants.

getTypeback to summary
public short getType()

The Type field of a symbol table entry contains two bytes, each byte representing type information. The least-significant byte represents simple (base) data type, and the most-significant byte represents complex type, if any:

MSB: Complex type: none, pointer, function, array.

LSB: Base type: integer, floating-point, etc.

The possible base type values are listed in sun.jvm.hotspot.debugger.win32.coff.COFFSymbolConstants under the IMAGE_SYM_TYPE constants.

The most significant byte specifies whether the symbol is a pointer to, function returning, or array of the base type specified in the least significant byte. Microsoft tools use this field only to indicate whether or not the symbol is a function, so that the only two resulting values are 0x0 and 0x20 for the Type field. However, other tools can use this field to communicate more information.

It is very important to specify the function attribute correctly. This information is required for incremental linking to work correctly. For some architectures the information may be required for other purposes.

The possible function types are listed in sun.jvm.hotspot.debugger.win32.coff.COFFSymbolConstants under the IMAGE_SYM_DTYPE constants.

getValueback to summary
public int getValue()

Value associated with the symbol. The interpretation of this field depends on Section Number and Storage Class. A typical meaning is the relocatable address.

isBfOrEfSymbolback to summary
public boolean isBfOrEfSymbol()

Indicates whether this symbol is a .bf or .ef symbol record and is therefore followed by an sun.jvm.hotspot.debugger.win32.coff.AuxBfEfRecord.

isFileback to summary
public boolean isFile()

Indicates whether this symbol has storage class FILE and is therefore followed by a sun.jvm.hotspot.debugger.win32.coff.AuxFileRecord.

isFunctionDefinitionback to summary
public boolean isFunctionDefinition()

Indicates whether this symbol is a function definition: storage class EXTERNAL (2), a Type value indicating it is a function (0x20), and a section number greater than zero. This indicates that the function is followed by an sun.jvm.hotspot.debugger.win32.coff.AuxFunctionDefinitionRecord. Note that a symbol table record that has a section number of UNDEFINED (0) does not define the function and does not have an auxiliary record.

isSectionDefinitionback to summary
public boolean isSectionDefinition()

Indicates whether this symbol defines a section and is therefore followed by an sun.jvm.hotspot.debugger.win32.coff.AuxSectionDefinitionsRecord.

isWeakExternalback to summary
public boolean isWeakExternal()

Indicates whether this symbol is a weak external and is therefore followed by an sun.jvm.hotspot.debugger.win32.coff.AuxWeakExternalRecord.