Class GoFunctionFixup

java.lang.Object
ghidra.app.util.bin.format.golang.GoFunctionFixup

public class GoFunctionFixup extends Object
Utility class that fixes golang function parameter storage using each function's current parameter list (formal info only) as starting information. TODO: verify GoFuncData.argsize property against what we calculate here
  • Constructor Details

  • Method Details

    • isClosureContext

      public static boolean isClosureContext(ParameterDefinition p)
    • isClosureContext

      public static boolean isClosureContext(Parameter p)
    • apply

      public void apply() throws DuplicateNameException, InvalidInputException
      Throws:
      DuplicateNameException
      InvalidInputException
    • makeEmptyArrayDataType

      public static DataType makeEmptyArrayDataType(DataType dt)
      Returns a Ghidra data type that represents a zero-length array, to be used as a replacement for a zero-length array parameter.
      Parameters:
      dt - data type that will donate its name to the created empty array type
      Returns:
      DataType that represents a specific zero-length array type
    • reverseNonStackStorageLocations

      public static void reverseNonStackStorageLocations(List<Varnode> varnodes)
      Invert the order of the any register storage locations to match the decompiler's logic for assigning storage to structs that varies on endianness.

      Only valid for storage scheme that has all register storages listed first / contiguous.

      Parameters:
      varnodes - list of varnodes that will be modified in-place