Interface ISymbolInformation
- All Known Implementing Classes:
SymbolInformation
Generic representation of a code symbol information. Method results are all optional; methods may
return 0 or null if the data is irrelevant to the loader type they are part of.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
the symbol address is absolutestatic final int
the symbol represent an object that is exported (publicly exposed) by the code unitstatic final int
this flag may be used withFUNCTION
symbols that have a non-zero symbol size: it serves to indicate that the routine code is a contiguous list of instructions (no inner data or undefined bytes, no loose basic blocks)static final int
the symbol represent an object that is imported by the code unitstatic final int
metadata symbols for linker or compiler, whose name is not useful -
Method Summary
Modifier and TypeMethodDescriptionint
getFlags()
Get the symbol flags.long
Get the symbol identifier.getName()
Get the symbol name.int
Retrieve the optional processor mode associated to this symbol, if the address points to code.long
Get the base-relative address of the description of the symbol.long
Get the base-relative address of the symbol.long
Get the size of the symbol.getType()
Get the symbol type.
-
Field Details
-
FLAG_IMPORTED
static final int FLAG_IMPORTEDthe symbol represent an object that is imported by the code unit- See Also:
-
FLAG_EXPORTED
static final int FLAG_EXPORTEDthe symbol represent an object that is exported (publicly exposed) by the code unit- See Also:
-
FLAG_FUNCTION_CODE_CONTIGUOUS
static final int FLAG_FUNCTION_CODE_CONTIGUOUSthis flag may be used withFUNCTION
symbols that have a non-zero symbol size: it serves to indicate that the routine code is a contiguous list of instructions (no inner data or undefined bytes, no loose basic blocks)- See Also:
-
FLAG_ABSOLUTE
static final int FLAG_ABSOLUTEthe symbol address is absolute- See Also:
-
FLAG_METADATA
static final int FLAG_METADATAmetadata symbols for linker or compiler, whose name is not useful- See Also:
-
-
Method Details
-
getType
SymbolType getType()Get the symbol type.- Returns:
- the type
-
getFlags
int getFlags()Get the symbol flags. A valid combination ofFLAG_xxx
.- Returns:
- the flags
-
getIdentifier
long getIdentifier()Get the symbol identifier. Optional.- Returns:
- the symbol identifier
-
getName
String getName()Get the symbol name.Special syntax for imported functions: the function name may be prefixed by the library name that contains it. A bang character is used as a separator. Example:
kernel32.dll!Sleep
Note: the method name may be mangled; it may be fully qualified. The library name is optional; its extension is optional (eg, .dll, .so); it may be a full path.- Returns:
- the symbol name
-
getRelativeAddress
long getRelativeAddress()Get the base-relative address of the description of the symbol. Informative and optional.- Returns:
- the base-relative address of the symbol description
-
getSymbolRelativeAddress
long getSymbolRelativeAddress()Get the base-relative address of the symbol.- Returns:
- the symbol RVA
-
getSymbolSize
long getSymbolSize()Get the size of the symbol. May not be known.- Returns:
- the symbol size
-
getSymbolDataTypeInformation
String getSymbolDataTypeInformation()- Returns:
- may be null
-
getProcessorMode
int getProcessorMode()Retrieve the optional processor mode associated to this symbol, if the address points to code. This value is optional, implementations may return 0.- Returns:
- the optional processor mode (refer to
IProcessor
for standard values)
-