Class StringDataInstance.StaticStringInstance
- Enclosing class:
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
-
Method Summary
Modifier and TypeMethodDescriptiongetLabel
(String prefixStr, String abbrevPrefixStr, String defaultStr, DataTypeDisplayOptions options) getOffcutLabelString
(String prefixStr, String abbrevPrefixStr, String defaultStr, DataTypeDisplayOptions options, int offcutOffset) int
Returns the length, in bytes, of the string data object contained in theMemBuffer
, or -1 if the length could not be determined.Returns a formatted version of the string returned byStringDataInstance.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
encodeReplacementFromCharRepresentation, encodeReplacementFromCharValue, encodeReplacementFromStringRepresentation, encodeReplacementFromStringValue, getAddress, getAddressRange, getByteOffcut, getCharOffcut, getCharRepresentation, getCharRepresentation, getCharsetName, getDataLength, getEndAddress, getStringDataInstance, getStringDataInstance, getStringDataTypeGuess, getStringRepresentation, getTranslatedValue, hasTranslatedValue, isChar, isMissingNullTerminator, isShowTranslation, isString, isStringDataType, makeStringLabel, toString
-
Constructor Details
-
StaticStringInstance
-
-
Method Details
-
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
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, 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 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 (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 classStringDataInstance
-
getOffcutLabelString
public String getOffcutLabelString(String prefixStr, String abbrevPrefixStr, String defaultStr, DataTypeDisplayOptions options, int offcutOffset) - Overrides:
getOffcutLabelString
in classStringDataInstance
-