Package ghidra.program.database.symbol
Class LibrarySymbol
java.lang.Object
ghidra.program.database.DatabaseObject
ghidra.program.database.symbol.SymbolDB
ghidra.program.database.symbol.LibrarySymbol
- All Implemented Interfaces:
Symbol
Class for library symbols.
Symbol data usage:
String stringData - associated program project file path
-
Field Summary
Fields inherited from class ghidra.program.database.DatabaseObject
key -
Constructor Summary
ConstructorsConstructorDescriptionLibrarySymbol(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, Address address, DBRecord record) Constructs a new Library Symbol -
Method Summary
Modifier and TypeMethodDescriptionReturns this symbol's typebooleanReturns true if this an external symbol.booleanbooleanisValidParent(Namespace parent) Determines if the given parent is valid for this Symbol.voidsetName(String newName, SourceType source) Sets the name this symbol.voidsetNameAndNamespace(String newName, Namespace newNamespace, SourceType source) Sets the symbols name and namespace.voidsetSymbolStringData(String newPath) Sets the symbol's string data field.Methods inherited from class ghidra.program.database.symbol.SymbolDB
checkDeleted, delete, doCheckIsPrimary, doGetName, doGetParentNamespace, doIsPinned, doSetNameAndNamespace, doSetPinned, doSetPrimary, equals, getAddress, getDataTypeId, getID, getName, getName, getParentNamespace, getParentSymbol, getPath, getProgram, getReferenceCount, getReferences, getReferences, getSource, getSymbolsDynamicallyRenamedByMyRename, getSymbolStringData, getVariableOffset, hashCode, hasMultipleReferences, hasReferences, isDeleted, isDeleting, isDescendant, isDynamic, isExternalEntryPoint, isGlobal, isPinned, moveLowLevel, refresh, refresh, setAddress, setDataTypeId, setNamespace, setPinned, setPrimary, setSource, setVariableOffset, toString, validateNameSourceMethods inherited from class ghidra.program.database.DatabaseObject
checkIsValid, checkIsValid, getKey, isDeleted, isInvalid, keyChanged, setDeleted, setInvalid, validateMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface ghidra.program.model.symbol.Symbol
getProgramLocation
-
Constructor Details
-
LibrarySymbol
public LibrarySymbol(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, Address address, DBRecord record) Constructs a new Library Symbol- Parameters:
symbolMgr- the symbol managercache- symbol object cacheaddress- the address for this symbolrecord- the record for this symbol
-
-
Method Details
-
setName
public void setName(String newName, SourceType source) throws DuplicateNameException, InvalidInputException Description copied from interface:SymbolSets the name this symbol. If this symbol is dynamic, then the name is set and the symbol is no longer dynamic.- Specified by:
setNamein interfaceSymbol- Overrides:
setNamein classSymbolDB- Parameters:
newName- the new name for this symbol.source- the source of this symbol
Some symbol types, such as function symbols, can set the source to Symbol.DEFAULT.- Throws:
DuplicateNameException- if name already exists as the name of another symbol or alias.InvalidInputException- if alias contains blank characters, is zero length, or is null
-
setNameAndNamespace
public void setNameAndNamespace(String newName, Namespace newNamespace, SourceType source) throws DuplicateNameException, InvalidInputException, CircularDependencyException Description copied from interface:SymbolSets the symbols name and namespace. This is provided to allow the caller to avoid a name conflict by creating an autonomous action.- Specified by:
setNameAndNamespacein interfaceSymbol- Overrides:
setNameAndNamespacein classSymbolDB- Parameters:
newName- new symbol namenewNamespace- new parent namespacesource- the source of this symbol
Some symbol types, such as function symbols, can set the source to Symbol.DEFAULT.- Throws:
DuplicateNameException- if newNamespace already contains a symbol with this symbol's nameInvalidInputException- is newNamespace is not a valid parent for this symbolCircularDependencyException- if this symbol is an ancestor of newNamespace
-
setSymbolStringData
Description copied from class:SymbolDBSets the symbol's string data field. This field's data has different uses depending on the symbol type and whether or not it is external.- Overrides:
setSymbolStringDatain classSymbolDB- Parameters:
newPath- the string to store in the string data field
-
getSymbolType
Description copied from interface:SymbolReturns this symbol's type- Returns:
- symbol type
-
isExternal
public boolean isExternal()Description copied from interface:SymbolReturns true if this an external symbol.- Returns:
- true if this an external symbol.
- See Also:
-
getObject
- Returns:
- object associated with this symbol or null if symbol has been deleted
-
isPrimary
public boolean isPrimary() -
isValidParent
Description copied from interface:SymbolDetermines if the given parent is valid for this Symbol. Specified namespace must belong to the same symbol table as this symbol.- Specified by:
isValidParentin interfaceSymbol- Overrides:
isValidParentin classSymbolDB- Parameters:
parent- prospective parent namespace for this symbol- Returns:
- true if parent is valid
-