As you examine the table, note the following:
As an example, let's look at the events for MsgSend(), MsgSendv(), and MsgSendvs(). As mentioned above, the information is the same for the restartable versions of these functions too.
Here's what the table gives for the entry (_NTO_TRACE_KERCALLENTER) to these functions:
Class: _NTO_TRACE_KERCALLENTER Event: __KER_MSG_SENDV Fast: coid, msg Wide: coid, sparts, rparts, msg[0], msg[1], msg[2] Call: MsgSend,MsgSendv,MsgSendvs #Args: MSG_SENDV, fHcoid, Dsparts, Drparts, fSmsg, s, s
This part describes the __KER_MSG_SENDV trace event that's emitted on entry to the function. In fast mode, the event includes the following data:
Fast mode data | Number of bytes for the event |
---|---|
Connection ID | 4 bytes |
Message data | 4 bytes (the first 4 bytes usually comprise the header) |
Total emitted: 8 bytes |
In wide mode, the event includes the following data:
Wide mode data | Number of bytes for the event |
---|---|
Connection ID | 4 bytes |
# of parts to send | 4 bytes |
# of parts to receive | 4 bytes |
Message data | 4 bytes (the first 4 bytes usually comprise the header) |
Message data | 4 bytes |
Message data | 4 bytes |
Total emitted: 24 bytes |
The second (_NTO_TRACE_KERCALLEXIT) part describes the __KER_MSG_SENDV event that's emitted on exit from the function:
Class: _NTO_TRACE_KERCALLEXIT Event: __KER_MSG_SENDV Fast: status, rmsg[0] Wide: status, rmsg[0], rmsg[1], rmsg[2] Call: MsgSend,MsgSendv,MsgSendvs #Args: MSG_SENDV, fDstatus, fSrmsg, s, s
In fast mode, the event includes the following data if the kernel call was successful:
Fast mode data | Number of bytes for the event |
---|---|
Exit status | 4 bytes |
Message data | 4 bytes (the first 4 bytes usually comprise the header) |
Total emitted: 8 bytes |
In wide mode, the event includes the following data if the kernel call was successful:
Wide mode data | Number of bytes for the event |
---|---|
Exit status | 4 bytes |
Message data | 4 bytes (the first 4 bytes usually comprise the header) |
Message data | 4 bytes |
Message data | 4 bytes |
Total emitted: 16 bytes |
In both fast and wide mode, the event includes the following data if the kernel call failed:
Fast and wide mode data | Number of bytes for the event |
---|---|
Exit status | 4 bytes |
Error code | 4 bytes |
Total emitted: 8 bytes |
For many of the events, you'll see a comment like this:
#Args: MSG_SENDV, fHcoid, Dsparts, Drparts, fSmsg, s, s
This line indicates how traceprinter displays the data associated with the event. The format codes are as follows:
Code | Format |
---|---|
H | Hexadecimal (32 bit) |
D | Decimal (32 bit) |
X | Hexadecimal (64 bit) |
E | Decimal (64 bit) |
S | Begin a character string |
s | Continue with a character string |
P | Pointer |
N | Named string |
f | Fast mode prefix |
For example, fHcoid indicates that the connection ID (coid) is displayed as a 32-bit hexadecimal number, and it's included in fast mode (and wide mode).