A lazy string is a string whose contents is not retrieved or encoded until it is needed.
<gdb:lazy-string> is represented in GDB as an
address that points to a region of memory, an
that will be used to encode that region of memory, and a
to delimit the region of memory that represents the string. The
difference between a
<gdb:lazy-string> and a string wrapped within
<gdb:value> is that a
<gdb:lazy-string> will be treated
differently by GDB when printing. A
retrieved and encoded during printing, while a
wrapping a string is immediately retrieved and encoded on creation.
The following lazy-string-related procedures are provided by the
#t if object is an object of type
Return the address of lazy-string.
Return the length of lazy-string in characters. If the length is -1, then the string will be fetched and encoded up to the first null of appropriate width.
Return the encoding that will be applied to lazy-string when the string is printed by GDB. If the encoding is not set, or contains an empty string, then GDB will select the most appropriate encoding when the string is printed.
Return the type that is represented by lazy-string’s type.
For a lazy string this will always be a pointer type. To
resolve this to the lazy string’s character type, use
See Types In Guile.
<gdb:lazy-string> to a
<gdb:value>. This value
will point to the string in memory, but will lose all the delayed
retrieval, encoding and handling that GDB applies to a