This is coded as:
REGS=(register[,register]...),
where:
register
CS, DS, SS, ES, AX, BX, CX, DX, SP, BP, SI, DI, IP, FLAGS
with the addition of the following to support OS/2 version 2.0:
EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI, EFLAGS, EIP, FS, GS
or the symbolic name of a C language variable declared with the register storage-class specifier as .symbolic_name.
The same register may appear multiple times in the register list. It will be traced as many times as it appears. Extended registers (E) are 32 bits and logged as two words. All other registers are 16 bits and logged as one word.
Note: To log a C language variable declared with the register storage class, debug information must exist and the variable name is case sensitive. When formatting the data logged from a register variable, remember that there are no memory prefix bytes put into the log buffer.
The following is an example of the REGS statement:
/* Given the following declaration in a C language source file: */ register int ret_code; /* To log registers AX, CX and the register variable ret_code: */ TRACE MINOR=..... REGS=(AX,CX,.ret_code), FMT="AX=%W CX=%W ret_code=%W"