下面的表格总结了使用DTrace追踪C程序时常用的probe和参数,由于有些约定俗成的词汇翻译成中文反而让人觉得别扭,所以就保留英文了:
描述 | probe | 参数 |
---|---|---|
user function entry | pid$target:segment:fun:entry | arg0..argN:函数参数 |
user function return | pid$target:segment:fun:return | arg0:函数返回时汇编指令位置 arg1:函数返回值 |
kernel function entry | fbt:module:fun:entry | arg0..argN:函数参数 |
kernel function return | fbt:module:fun:return | arg0:函数返回时汇编指令位置 arg1:函数返回值 |
system call | syscall::fun:entry | arg0..argN:函数参数 |
system call | syscall::fun:return | arg0:函数返回值 |
以上函数的输入参数arg0…argN都是uint64_t类型。
参考资料:
(1)The DTrace One-Liner Tutorial
(2)DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD