Interface Symbol

    • Method Detail

      • getName

        java.lang.String getName()
      • checkIsValid

        boolean checkIsValid()
        Check whether this symbol is still valid (i.e., deleted).
        Returns:
        true if valid or false if deleted.
      • getPath

        java.lang.String[] getPath()
        Gets the full path name for this symbol as an ordered array of strings ending with the symbol name. The global symbol will return an empty array.
      • getName

        java.lang.String getName​(boolean includeNamespace)
        Returns the symbol name, optionally prepended with the namespace path.
        Parameters:
        includeNamespace - if true, the namespace path is prepended to the name.
      • getParentNamespace

        Namespace getParentNamespace()
      • getParentSymbol

        Symbol getParentSymbol()
        Returns namespace symbol of the namespace containing this symbol
      • isDescendant

        boolean isDescendant​(Namespace namespace)
        Returns true if the given namespace symbol is a descendant of this symbol.
        Parameters:
        namespace - to test as descendant symbol of this Symbol
        Returns:
        true if this symbol is an ancestor of the given namespace symbol
      • isValidParent

        boolean isValidParent​(Namespace parent)
        Returns whether the given parent is valid for this Symbol.
        Parameters:
        parent -
      • getSymbolType

        SymbolType getSymbolType()
        Returns the symbol type
      • getReferenceCount

        int getReferenceCount()
      • hasMultipleReferences

        boolean hasMultipleReferences()
      • hasReferences

        boolean hasReferences()
      • getReferences

        Reference[] getReferences​(TaskMonitor monitor)
        Returns all memory references to the address of this symbol. If you do not have a TaskMonitor instance, then you can pass TaskMonitorAdapter.DUMMY_MONITOR or null.
        Parameters:
        monitor - the monitor that is used to report progress and to cancel this potentially long-running call
      • setName

        void setName​(java.lang.String newName,
                     SourceType source)
              throws DuplicateNameException,
                     InvalidInputException
        Sets the name this symbol. If this symbol is dynamic, then the name is set and the symbol is no longer dynamic.
        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
        java.lang.IllegalArgumentException - if you try to set the source to DEFAULT for a symbol type that doesn't allow it.
      • delete

        boolean delete()
        Delete the symbol and its associated resources.
      • isPinned

        boolean isPinned()
        Returns true if the symbol is pinned to its current address. If it is pinned, then moving or removing the memory associated with that address will not affect this symbol.
      • setPinned

        void setPinned​(boolean pinned)

        Sets whether or not this symbol is pinned to its associated address.

        If the symbol is pinned then moving or removing the memory associated with its address will not cause this symbol to be removed and will not cause its address to change. If the symbol is not pinned, then removing the memory at its address will also remove this symbol.

        Likewise, moving a memory block containing a symbol that is not anchored will change the address for that symbol to keep it associated with the same byte in the memory block.

        Parameters:
        pinned - true indicates this symbol is anchored to its address. false indicates this symbol is not anchored to its address.
      • isDynamic

        boolean isDynamic()
      • isExternal

        boolean isExternal()
        Returns true if this an external symbol.
        Returns:
        true if this an external symbol.
        See Also:
        Address.isExternalAddress()
      • isPrimary

        boolean isPrimary()
      • setPrimary

        boolean setPrimary()
        Sets this symbol to be primary. All other symbols at the same address will be set to !primary. Only applies to non-function symbols.
        Returns:
        returns true if the symbol was not primary and now it is, otherwise false
      • isExternalEntryPoint

        boolean isExternalEntryPoint()
      • getID

        long getID()
      • getObject

        java.lang.Object getObject()
      • isGlobal

        boolean isGlobal()
      • setSource

        void setSource​(SourceType source)
        Sets the source of this symbol. SourceTypes
        Parameters:
        source - the new source of this symbol
      • getSource

        SourceType getSource()
        Gets the source of this symbol. SourceTypes
        Returns:
        the source of this symbol