This is used to log a string in a function compiled using 16-bit segment:offset addressing and is coded as:
ASCIIZ=(address_spec,flag,maxlength),
where:
address_spec
is a segmented memory address specification as described in Address Specification.
is a mandatory parameter that identifies the level of indirection to be used on the address. It is one of:
D[IRECT]
I[NDIRECT][*[{+|-}iiiiiiii]]...
IF
INDIRECT means that the address points to a far pointer which is a segmented address that is dereferenced to obtain the target location to save in the trace buffer. The optional asterisks denote the level of indirection, one for each level. The indirect offsets iiiiiiii are added to or subtracted from the value found at the given level of indirection.
IF (Indirect Flat) means that the address points to a far pointer which is is a flat address that is dereferenced to obtain the target location to save in the trace buffer. Only far pointers may be dereferenced using segmented addresses.
is the maximum length of the string that will be saved in the trace buffer. It should be no greater than MAXDATALENGTH. The actual length to be traced will depend on where the zero terminating byte is found.
If maxlength is 0 an error message will be given, and this tracepoint will be ignored.
Note: When using dynamic tracing, the OS/2 kernel does not place the terminating null byte into the trace buffer; therefore the prefix byte must be used by the Trace Formatter to obtain the length of the string.