public interface COFFSymbol
Modifier and Type | Method and Description |
---|---|
AuxBfEfRecord |
getAuxBfEfRecord()
This should only be called if
isBfOrEfSymbol() returns
true. |
AuxFileRecord |
getAuxFileRecord()
This should only be called if
isFile() returns
true. |
AuxFunctionDefinitionRecord |
getAuxFunctionDefinitionRecord()
This should only be called if
isFunctionDefinition()
returns true. |
AuxSectionDefinitionsRecord |
getAuxSectionDefinitionsRecord()
This should only be called if
isSectionDefinition() returns
true. |
AuxWeakExternalRecord |
getAuxWeakExternalRecord()
This should only be called if
isWeakExternal() returns
true. |
java.lang.String |
getName() |
byte |
getNumberOfAuxSymbols()
Number of auxiliary symbol table entries that follow this
record.
|
int |
getOffset()
Offset within the file of this record.
|
short |
getSectionNumber()
Signed integer identifying the section, using a one-based index
into the Section Table.
|
byte |
getStorageClass()
Enumerated value representing storage class.
|
short |
getType()
The Type field of a symbol table entry contains two bytes,
each byte representing type information.
|
int |
getValue()
Value associated with the symbol.
|
boolean |
isBfOrEfSymbol()
Indicates whether this symbol is a .bf or .ef symbol record and
is therefore followed by an
AuxBfEfRecord . |
boolean |
isFile()
Indicates whether this symbol has storage class FILE and is
therefore followed by a
AuxFileRecord . |
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.
|
boolean |
isSectionDefinition()
Indicates whether this symbol defines a section and is therefore
followed by an
AuxSectionDefinitionsRecord . |
boolean |
isWeakExternal()
Indicates whether this symbol is a weak external and is
therefore followed by an
AuxWeakExternalRecord . |
int getOffset()
java.lang.String getName()
int getValue()
short getSectionNumber()
COFFSymbolConstants
.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 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 COFFSymbolConstants
under the
IMAGE_SYM_DTYPE constants.
byte getStorageClass()
COFFSymbolConstants
under the
IMAGE_SYM_CLASS constants.byte getNumberOfAuxSymbols()
boolean isFunctionDefinition()
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.AuxFunctionDefinitionRecord getAuxFunctionDefinitionRecord()
isFunctionDefinition()
returns true.boolean isBfOrEfSymbol()
AuxBfEfRecord
.AuxBfEfRecord getAuxBfEfRecord()
isBfOrEfSymbol()
returns
true.boolean isWeakExternal()
AuxWeakExternalRecord
.AuxWeakExternalRecord getAuxWeakExternalRecord()
isWeakExternal()
returns
true.boolean isFile()
AuxFileRecord
.AuxFileRecord getAuxFileRecord()
isFile()
returns
true.boolean isSectionDefinition()
AuxSectionDefinitionsRecord
.AuxSectionDefinitionsRecord getAuxSectionDefinitionsRecord()
isSectionDefinition()
returns
true. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.