Class GoStructType
java.lang.Object
ghidra.app.util.bin.format.golang.rtti.types.GoType
ghidra.app.util.bin.format.golang.rtti.types.GoStructType
- All Implemented Interfaces:
StructureMarkup<GoType>
Golang type information about a specific structure type.
-
Field Summary
Fields inherited from class ghidra.app.util.bin.format.golang.rtti.types.GoType
context, programContext, typ, uncommonType
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
additionalMarkup
(MarkupSession session) Called to allow the implementor to perform custom markup of itself.boolean
discoverGoTypes
(Set<Long> discoveredTypes) Iterates this type, and any types this type refers to, while registering the types with theGoRttiMapper
context.long
Returns the location of where this type object, and any known associated optional structures ends.Returns the fields defined by this struct type.Returns the package path of this structure typeReturns the package path of this structure type.Returns a descriptive string that defines the declaration of this type.Converts a golang RTTI type structure into a Ghidra data type.Methods inherited from class ghidra.app.util.bin.format.golang.rtti.types.GoType
getBaseType, getDebugId, getImplementsInterfaceString, getMethodInfoList, getMethodListString, getMethodSignature, getName, getNameWithPackageString, getOffsetEndOfFullType, getSpecializedTypeClass, getStructureContext, getStructureName, getStructureNamespace, getTypeOffset, getUncommonType, getUniqueTypename, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ghidra.app.util.bin.format.golang.structmapping.StructureMarkup
getExternalInstancesToMarkup, getStructureLabel
-
Constructor Details
-
GoStructType
public GoStructType()
-
-
Method Details
-
getPkgPath
Returns the package path of this structure type.- Returns:
- package path of this structure type
- Throws:
IOException
- if error reading
-
getPackagePathString
Returns the package path of this structure type- Overrides:
getPackagePathString
in classGoType
- Returns:
- package path of this structure type, as a string
-
getFields
Returns the fields defined by this struct type.- Returns:
- list of fields defined by this struct type
- Throws:
IOException
- if error reading
-
getEndOfTypeInfo
Description copied from class:GoType
Returns the location of where this type object, and any known associated optional structures ends.- Overrides:
getEndOfTypeInfo
in classGoType
- Returns:
- index location of end of this type object
- Throws:
IOException
- if error reading
-
additionalMarkup
Description copied from interface:StructureMarkup
Called to allow the implementor to perform custom markup of itself.- Specified by:
additionalMarkup
in interfaceStructureMarkup<GoType>
- Overrides:
additionalMarkup
in classGoType
- Parameters:
session
- state and methods to assist marking up the program- Throws:
IOException
- if error during markupCancelledException
- if cancelled
-
getTypeDeclString
Description copied from class:GoType
Returns a descriptive string that defines the declaration of this type.This method should be overloaded by more specific types.
- Overrides:
getTypeDeclString
in classGoType
- Returns:
- descriptive string
- Throws:
IOException
- if error reading data
-
recoverDataType
Description copied from class:GoType
Converts a golang RTTI type structure into a Ghidra data type.- Overrides:
recoverDataType
in classGoType
- Returns:
DataType
that represents the golang type- Throws:
IOException
- if error getting name of the type
-
discoverGoTypes
Description copied from class:GoType
Iterates this type, and any types this type refers to, while registering the types with theGoRttiMapper
context.This method should be overloaded by derived type classes to add any additional types referenced by the derived type.
- Overrides:
discoverGoTypes
in classGoType
- Parameters:
discoveredTypes
- set of already iterated types- Returns:
- boolean boolean flag, if false the type has already been discovered, if true the type was encountered for the first time
- Throws:
IOException
- if error reading type info
-