A lazy string is a string whose contents is not retrieved or encoded until it is needed.
A gdb.LazyString is represented in ROCGDB as an
address that points to a region of memory, an encoding
that will be used to encode that region of memory, and a length
to delimit the region of memory that represents the string. The
difference between a gdb.LazyString and a string wrapped within
a gdb.Value is that a gdb.LazyString will only be
retrieved and encoded during printing, while a gdb.Value
wrapping a string is immediately retrieved and encoded on creation.
A gdb.LazyString can be created using the
gdb.Value.lazy_string method (see Values From Inferior).
A gdb.LazyString object has the following functions:
Convert the gdb.LazyString to a gdb.Value. This value
will point to the string in memory, but will lose all the delayed
retrieval, encoding and handling that ROCGDB applies to a
gdb.LazyString.
This attribute holds the address of the string. This attribute is not writable.
This attribute holds the length of the string in characters. If the length is -1, then the string will be fetched and encoded up to the first null of appropriate width. This attribute is not writable.
This attribute holds the encoding that will be applied to the string when the string is printed by ROCGDB. If the encoding is not set, or contains an empty string, then ROCGDB will select the most appropriate encoding when the string is printed. This attribute is not writable.
This attribute holds the type that is represented by the lazy string’s
type. For a lazy string this is a pointer or array type. To
resolve this to the lazy string’s character type, use the type’s
target method. See Types In Python. This attribute is not
writable.