Class StringDataInstance.StaticStringInstance

java.lang.Object
ghidra.program.model.data.StringDataInstance
ghidra.program.model.data.StringDataInstance.StaticStringInstance
Enclosing class:
StringDataInstance

public static class StringDataInstance.StaticStringInstance extends StringDataInstance
  • Constructor Details

    • StaticStringInstance

      public StaticStringInstance(String fakeStr, int fakeLen)
  • Method Details

    • getStringValue

      public String getStringValue()
      Description copied from class: StringDataInstance
      Returns the string contained in the specified MemBuffer, or null if all the bytes of the string could not be read.

      This method deals in characters of size StringDataInstance.charSize, that might be padded to a larger size. The raw n-byte characters are converted into a Java String using a Java Charset or by using a custom Ghidra conversion. (see convertBytesToStringCustomCharset)

      The MemBuffer's endian'ness is used to determine which end of the padded field contains our StringDataInstance.charSize character bytes which will be used to create the java String.

      Overrides:
      getStringValue in class StringDataInstance
      Returns:
      String containing the characters in buf or null if unable to read all length bytes from the membuffer.
    • getStringRepresentation

      public String getStringRepresentation()
      Description copied from class: StringDataInstance
      Returns a formatted version of the string returned by StringDataInstance.getStringValue().

      The resulting string will be formatted with quotes around the parts that contain plain ASCII alpha characters (and simple escape sequences), and out-of-range byte-ish values listed as comma separated hex-encoded values:

      Example (quotes are part of result): "Test\tstring",01,02,"Second\npart",00

      Overrides:
      getStringRepresentation in class StringDataInstance
      Returns:
      formatted String, or the translated value if present and the "show translated" setting is enabled for this string's location
    • getStringLength

      public int getStringLength()
      Description copied from class: StringDataInstance
      Returns the length, in bytes, of the string data object contained in the MemBuffer, or -1 if the length could not be determined.

      This is not the same as the number of characters in the string, or the number of bytes occupied by the characters. For instance, pascal strings have a 1 or 2 byte length field that increases the size of the string data object beyond the characters in the string, and null terminated strings have don't include the null character, but its presence is included in the size of the string object.

      For length-specified string data types that do not use null-terminators and with a known data instance length (ie. not a probe), this method just returns the value specified in the constructor length parameter, otherwise a null-terminator is searched for.

      When searching for a null-terminator, the constructor length parameter will be respected or ignored depending on the StringLayoutEnum.

      When the length parameter is ignored (ie. "unbounded" searching), the search is limited to StringDataInstance.MAX_STRING_LENGTH bytes.

      The MemBuffer's endian'ness is used to determine which end of the padded character field contains our n-bit character which will be tested for null-ness. (not the endian'ness of the character set name - ie. "UTF-16BE")

      Overrides:
      getStringLength in class StringDataInstance
      Returns:
      length of the string (INCLUDING null term if null term probe), in bytes, or -1 if no terminator found.
    • getLabel

      public String getLabel(String prefixStr, String abbrevPrefixStr, String defaultStr, DataTypeDisplayOptions options)
      Overrides:
      getLabel in class StringDataInstance
    • getOffcutLabelString

      public String getOffcutLabelString(String prefixStr, String abbrevPrefixStr, String defaultStr, DataTypeDisplayOptions options, int offcutOffset)
      Overrides:
      getOffcutLabelString in class StringDataInstance