java.lang.Object
ghidra.app.util.bin.format.golang.rtti.types.GoBaseType
All Implemented Interfaces:
StructureVerifier

public class GoBaseType extends Object implements StructureVerifier
Represents the fundamental Go rtti type information.

The in-memory instance will typically be part of a specialized type structure, depending on the 'kind' of this type.

Additionally, there can be an GoUncommonType structure immediately after this type, if the uncommon bit is set in tflag.

 struct specialized_type { basetype_struct; (various_fields)* } struct uncommon; 
 
  • Constructor Details

    • GoBaseType

      public GoBaseType()
  • Method Details

    • getSize

      public long getSize()
      Returns the size of the type being defined by this structure.
      Returns:
      the size of the type being defined by this structure
    • getKind

      public GoKind getKind()
      Returns the GoKind enum assigned to this type definition.
      Returns:
      the GoKind enum assigned to this type definition
    • getFlags

      public Set<GoTypeFlag> getFlags()
      Returns the GoTypeFlags assigned to this type definition.
      Returns:
      the GoTypeFlags assigned to this type definition
    • getTflag

      public int getTflag()
      Returns the raw flag value.
      Returns:
      the raw flag value
    • hasUncommonType

      public boolean hasUncommonType()
      Returns true if this type definition's flags indicate there is a following GoUncommon structure.
      Returns:
      true if this type definition's flags indicate there is a following GoUncommon structure
    • getGoName

      public GoName getGoName() throws IOException
      Returns name of this type, as a GoName.
      Returns:
      name of this type, as a GoName
      Throws:
      IOException - if error reading data
    • getName

      public String getName()
      Returns the name of this type.
      Returns:
      the name of this type
    • getPtrToThis

      public GoType getPtrToThis() throws IOException
      Returns reference to the GoType that represents a pointer to this type.
      Returns:
      reference to the GoType that represents a pointer to this type
      Throws:
      IOException - if error reading
    • isValid

      public boolean isValid()
      Specified by:
      isValid in interface StructureVerifier