Context
Definition
Probe context contains system state related to a fired probe, including:
- Register values
- Thread and process, which caused probe firing, including CPU where thread is running
- Currently executing probe
Context is provided as built-in variables in DTrace such as execname or as tapset functions in SystemTap such as execname().
Userspace register values are available in DTrace through built-in variable uregs. In SystemTap, they available through Embedded C and kernel function task_pt_regs, or a special Embedded C variable CONTEXT, see for example implementation of uaddr() and print_regs() tapset functions.
Here are some useful context information:
| Description | DTrace | SystemTap |
| Current executing thread |
curthread |
task_current() |
| ID of current thread |
tid |
tid() |
| ID of current process |
pid |
pid() |
| ID of parent of current process |
ppid |
ppid() |
| User ID and group ID of current process |
uid/gid |
uid()/gid(),
euid(), egid() |
| Name of current process executable |
execname
curpsinfo->ps_fname |
execname() |
| Command Line Arguments |
curpsinfo->ps_psargs |
cmdline_*() |
| CPU number |
cpu |
cpu() |
| Probe names |
probeprov, probemod,
probefunc, probename |
pp(), pn(), ppfunc(),
probefunc(), probemod() |
References