Kernel-call classes: _NTO_TRACE_KERCALLENTER, _NTO_TRACE_KERCALLEXIT, and _NTO_TRACE_KERCALLINT
QNX SDP8.0System Analysis Toolkit (SAT) User's GuideUser
These classes track kernel calls.
- _NTO_TRACE_KERCALLENTER and _NTO_TRACE_KERCALLEXIT track the entrances to and exits from kernel calls.
- _NTO_TRACE_KERCALLINT tracks interrupted kernel calls. When we exit the kernel, we check to see if the kernel call arguments are valid. If so, then we log an _NTO_TRACE_KERCALLEXIT event with the parameters. If not, then we log an _NTO_TRACE_KERCALLINT event with no parameters. If you get an EINTR return code from your kernel call, you'll also see an _NTO_TRACE_KERCALLINT event in the trace log.
_NTO_TRACE_KERCALL is a pseudo-class that comprises all these classes.
The traceprinter labels for these classes are KER_CALL,
KER_EXIT, and INT_CALL, followed by
an uppercase version of the kernel call;
the IDE labels consist of the kernel call, followed by Enter,
Exit, or INT.
Note:
The event type is ORed with _NTO_TRACE_KERCALL64 if the event information includes 64-bit data types.
For the most part this happens when you're tracing a 64-bit process, but it's possible for a 32-bit process to call
MsgDeliverEvent() with the 64-bit form of a struct sigevent (e.g., when a
64-bit client interacts with a 32-bit server).
When you're doing a wide-mode trace, the kernel dumps the contents of the struct sigevent,
so _NTO_TRACE_KERCALL64 would be ORed into the event type.
Most of the events in these classes correspond in a fairly obvious way to the kernel calls; some correspond to internal functions:
| Event | Kernel call |
|---|---|
| __KER_BAD | — |
| __KER_CACHE_CONTROL | CacheControl() |
| __KER_CHANNEL_CREATE | ChannelCreate() |
| __KER_CHANNEL_CTL | ChannelCtl() |
| __KER_CHANNEL_DESTROY | ChannelDestroy() |
| __KER_CLOCK_ADJUST | ClockAdjust() |
| __KER_CLOCK_ID | ClockId() |
| __KER_CLOCK_PERIOD | ClockPeriod() |
| __KER_CLOCK_TIME | ClockTime() |
| __KER_CONNECT_ATTACH | ConnectAttach() |
| __KER_CONNECT_CLIENT_INFO | ConnectClientInfo() |
| __KER_CONNECT_DETACH | ConnectDetach() |
| __KER_CONNECT_FLAGS | ConnectFlags() |
| __KER_CONNECT_SERVER_INFO | ConnectServerInfo() |
| __KER_INTERRUPT_ATTACH | InterruptAttachThread(), InterruptAttachEvent() |
| __KER_INTERRUPT_DETACH | InterruptDetach() |
| __KER_INTERRUPT_QUERY | InterruptQuery() |
| __KER_INTERRUPT_MASK | InterruptMask() |
| __KER_INTERRUPT_UNMASK | InterruptUnmask() |
| __KER_INTERRUPT_WAIT | InterruptWait() |
| __KER_MSG_CURRENT | MsgCurrent() |
| __KER_MSG_DELIVER_EVENT | MsgDeliverEvent() |
| __KER_MSG_ERROR | MsgError() |
| __KER_MSG_INFO | MsgInfo() |
| __KER_MSG_PAUSE | MsgPause() |
| __KER_MSG_QUEUE_CLOSE | MsgQueueClose() |
| __KER_MSG_QUEUE_CTL | MsgQueueCtl() |
| __KER_MSG_QUEUE_OPEN | MsgQueueOpen() |
| __KER_MSG_QUEUE_SEND | MsgQueueSend() |
| __KER_MSG_READV | MsgRead(), MsgReadv() |
| __KER_MSG_RECEIVEPULSEV | MsgReceivePulse() |
| __KER_MSG_RECEIVEV | MsgReceive(), MsgReceivev() |
| __KER_MSG_REGISTER_EVENT | MsgRegisterEvent() |
| __KER_MSG_REPLYV | MsgReply(), MsgReplyv() |
| __KER_MSG_SENDV | MsgSend(), MsgSendv(), and MsgSendvs() |
| __KER_MSG_SENDVNC | MsgSendnc(), MsgSendvnc(), and MsgSendvsnc() |
| __KER_MSG_SEND_PULSE | MsgSendPulse() |
| __KER_MSG_SEND_PULSEPTR | MsgSendPulsePtr() |
| __KER_MSG_VERIFY_EVENT | MsgVerifyEvent() |
| __KER_MSG_WRITEV | MsgWrite(), MsgWritev() |
| __KER_NOP | None; forces a thread into the kernel so that scheduling can take place |
| __KER_SCHED_CTL | SchedCtl() |
| __KER_SCHED_GET | SchedGet() |
| __KER_SCHED_INFO | SchedInfo() |
| __KER_SCHED_SET | SchedSet() |
| __KER_SCHED_YIELD | SchedYield() |
| __KER_SIGNAL_ACTION | SignalAction() |
| __KER_SIGNAL_KILL | SignalKill() |
| __KER_SIGNAL_KILL_SIGVAL | SignalKillSigval() |
| __KER_SIGNAL_PROCMASK | SignalProcmask() |
| __KER_SIGNAL_RETURN | SignalReturn() (This function is for internal use only) |
| __KER_SIGNAL_SUSPEND | SignalSuspend() |
| __KER_SIGNAL_WAITINFO | SignalWaitInfo() |
| __KER_SYNC_BARRIER_WAIT | SyncBarrierWait_r() |
| __KER_SYNC_CONDVAR_SIGNAL | SyncCondvarSignal() |
| __KER_SYNC_CONDVAR_WAIT | SyncCondvarWait() |
| __KER_SYNC_CREATE | SyncTypeCreate() |
| __KER_SYNC_CTL | SyncCtl() |
| __KER_SYNC_DESTROY | SyncDestroy()
Note:
This event and kernel call are being deprecated in a future release. Use
__KER_SYNC_TYPE_DESTROY and SyncTypeDestroy()
instead. |
| __KER_SYNC_TYPE_DESTROY | SyncTypeDestroy() |
| __KER_SYNC_MUTEX_LOCK | SyncMutexLock() |
| __KER_SYNC_MUTEX_UNLOCK | SyncMutexUnlock() |
| __KER_SYNC_RWLOCK | SyncRWLock() |
| __KER_SYNC_SEM_POST | SyncSemPost() |
| __KER_SYNC_SEM_WAIT | SyncSemWait() |
| __KER_SYS_CPUPAGE_GET | — |
| __KER_SYS_CPUPAGE_SET | — |
| __KER_SYS_SRANDOM | SysSrandom() |
| __KER_THREAD_CANCEL | ThreadCancel() |
| __KER_THREAD_CREATE | ThreadCreate() |
| __KER_THREAD_CTL | ThreadCtl() |
| __KER_THREAD_DESTROY | ThreadDestroy() |
| __KER_THREAD_DETACH | ThreadDetach() |
| __KER_THREAD_JOIN | ThreadJoin() |
| __KER_TIMER_ALARM | TimerAlarm() |
| __KER_TIMER_CREATE | TimerCreate() |
| __KER_TIMER_DELEGATE | TimerDelegate() |
| __KER_TIMER_DESTROY | TimerDestroy() |
| __KER_TIMER_INFO | TimerInfo() |
| __KER_TIMER_SETTIME | TimerSettime() |
| __KER_TIMER_TIMEOUT | TimerTimeout() |
| __KER_TRACE_EVENT | TraceEvent() |
Page updated:
