| 函数名 | 说明 |
|---|---|
| execname() | 获取当前进程的名称, 即可执行文件的名称 |
| pid() | 获取当前进程的PID |
| pp() | 获取当前的probe点,例如probe process.syscall,process.end{ /script/ }, 在块中调用pp()可能会返回”process.syscall”和”process.end” |
| probefunc() | 获取当前probe()的函数名称。例如probe_sys_read函数, 在probe块中调用该函数会返回 sys_read. 注意这个函数的返回值是从pp()返回的字符串中解析得到的。 |
| tid() | 获取当前的线程id |
| cpu() | 获取当前CPU的id |
| gettimeofday_s() | 获取当前的unix()时间,单位秒 |
| gettimeofday_ms() | 获取当前的unix()时间,单位毫秒 |
| gettimeofday_us() | 获取当前的unix()时间,单位微秒 |
| gettimeofday_ns() | 获取当前的unix()时间,单位纳秒 |
| get_cycles() | 获取处理器周期数 |
| ppfunc() | 返回从pp()中解析得到的函数名 |
| print_backtrace() | 打印内核调用栈信息 |
| print_ubacktrace() | 打印用户态调用栈信息 |
| thread_ident() | 输出当前的线程信息。格式为”相对时间 程序名称(线程id): (空格)”, 如果当前probe的函数 执行的次数越多, 空格的数量也就越多。这个函数还一个参数用来控制空格的数量。参数值 越大空格的数量越多。相对时间是当前的时间(以微秒为单位)减去线程第一次执行 thread_ident的时间 |
| target() | 获取当前脚本针对的目标进程ID。需要配置stap的-c或-x命令使用。 |
更多trapset:
https://sourceware.org/systemtap/tapsets/
systemtap官方文档:
https://sourceware.org/systemtap/documentation.html
