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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ghidra.program.model.data.StringDataInstance
StringDataInstance.StaticStringInstance
-
-
Field Summary
-
Fields inherited from class ghidra.program.model.data.StringDataInstance
DEFAULT_CHARSET_NAME, MAX_STRING_LENGTH, NULL_INSTANCE, UNKNOWN, UNKNOWN_DOT_DOT_DOT
-
-
Constructor Summary
Constructors Constructor Description StaticStringInstance(java.lang.String fakeStr, int fakeLen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getLabel(java.lang.String prefixStr, java.lang.String abbrevPrefixStr, java.lang.String defaultStr, DataTypeDisplayOptions options)
java.lang.String
getOffcutLabelString(java.lang.String prefixStr, java.lang.String abbrevPrefixStr, java.lang.String defaultStr, DataTypeDisplayOptions options, int offcutOffset)
int
getStringLength()
Returns the length, in bytes, of the string data object contained in theMemBuffer
, or -1 if the length could not be determined.java.lang.String
getStringRepresentation()
Returns a formatted version of the string returned byStringDataInstance.getStringValue()
.java.lang.String
getStringValue()
Returns the string contained in the specifiedMemBuffer
, or null if all the bytes of the string could not be read.-
Methods inherited from class ghidra.program.model.data.StringDataInstance
getAddress, getByteOffcut, getCharOffcut, getCharRepresentation, getCharsetName, getDataLength, getStringDataInstance, getStringDataInstance, getStringDataTypeGuess, getTranslatedValue, hasNullTerminator, isChar, isPascal, isShowTranslation, isString, toString
-
-
-
-
Method Detail
-
getStringValue
public java.lang.String getStringValue()
Description copied from class:StringDataInstance
Returns the string contained in the specifiedMemBuffer
, or null if all the bytes of the string could not be read.This method deals in characters of size
StringDataInstance.charSize
, that might bepadded
to a larger size. The raw n-byte characters are converted into a Java String using a JavaCharset
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 ourStringDataInstance.charSize
character bytes which will be used to create the java String.- Overrides:
getStringValue
in classStringDataInstance
- Returns:
- String containing the characters in buf or null if unable to read all
length
bytes from the membuffer.
-
getStringRepresentation
public java.lang.String getStringRepresentation()
Description copied from class:StringDataInstance
Returns a formatted version of the string returned byStringDataInstance.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 classStringDataInstance
- Returns:
- formatted String
-
getStringLength
public int getStringLength()
Description copied from class:StringDataInstance
Returns the length, in bytes, of the string data object contained in theMemBuffer
, 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 theStringLayoutEnum
.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 classStringDataInstance
- Returns:
- length of the string (NOT including null term if null term probe), in bytes, or -1 if no terminator found.
-
getLabel
public java.lang.String getLabel(java.lang.String prefixStr, java.lang.String abbrevPrefixStr, java.lang.String defaultStr, DataTypeDisplayOptions options)
- Overrides:
getLabel
in classStringDataInstance
-
getOffcutLabelString
public java.lang.String getOffcutLabelString(java.lang.String prefixStr, java.lang.String abbrevPrefixStr, java.lang.String defaultStr, DataTypeDisplayOptions options, int offcutOffset)
- Overrides:
getOffcutLabelString
in classStringDataInstance
-
-