DTrace是最初来自Solaris的令人印象深刻的强大的跟踪系统,但它被移植到FreeBSD和Mac OSX。从DTrace脚本调用C函数
DTrace的使用称为d高级语言没有什么不同AWK或C.下面是一个例子:
io:::start
/pid == $1/
{
printf("file %s offset %d size %d block %llu\n", args[2]->fi_pathname,
args[2]->fi_offset, args[0]->b_bcount, args[0]->b_blkno);
}
使用命令行sudo dtrace -q -s <name>.d <pid>
所有IO源于该过程被记录下来。
我的问题是如何以及如何从DTrace脚本中调用自定义C函数,以便在跟踪过程中对跟踪数据执行高级操作。