From fix pack 8 (OS/2 3.0) and fix pack 91 (OS/2 2.11) the system trace was enhanced to provide improved time-stamp information. Each trace records is time-stamped in hours, minutes, seconds and 1/100 seconds. The trace logging start and stop times are also logged and displayed by the TRACEFMT command.
The spare bytes between the end of the STDA header and first trace record have been reserved for storing trace start and stop times. These are of the following format:
STDA ─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬──────────────────── │y y│m│d│h│n│s│c│Y Y│M│D│H│N│S│C│TRACE RECORDS .... ─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴──────────────────── 28 30 38
Where:
yymdhnsc is the TRACE ON date and time in years, months, days, hours, seconds and 100th seconds.
YYMDHNSC is the TRACE OFF date and time in years, months, days, hours, seconds and 100th seconds.
The time-stamp field of a trace record in now 4 bytes and contains in addition hours and minutes. The following diagram compares the different trace records of both old and new formats:
Old format with time-stamp: ┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ Optional Data │s│h│f│Pid│Min│Len│Maj│ ┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ -8 -4 0 1 2 3 5 7 9 Old format without time-stamp: ┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ Optional Data │f│Pid│Min│Len│Maj│ ┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ -8 -4 0 1 3 5 7 New format with time-stamp: ┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ Optional Data │H│M│s│h│f│Pid│Min│Len│Maj│ ┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ -8 -4 0 1 2 3 4 5 7 9 a
where:
Optional Data
Notes:
The format of the buffer used by TRACEFMT has not changed. Thus, as long as a correct header is appended to the extracted STDA then the new TRACEFMT will format the traced data.
The new TRACEFMT will also format trace data of the older format.
STDAs of the new and old formats may be distinguished by the value of the start offset in the STDA header:
For the old format this is 0x000e.
For the new format this is 0x001e.