我有以下dtrace单线:
sudo dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
按程序打印系统调用次数(按 Ctrl - C 。
如何在探针上方添加过滤器,仅按名称应用于流程(例如php
)?与dtruss -n <name>
类似。
答案 0 :(得分:1)
好的,这是相当简单的,因为可以在dtruss
中检查过滤是如何完成的:
$ grep -C5 NAME $(which dtruss)
syscall:::entry
/(OPT_command && pid == $target) ||
(OPT_pid && pid == PID) ||
(OPT_name && NAME == strstr(NAME, execname)) ||
(OPT_name && execname == strstr(execname, NAME)) ||
(self->child)/
{
/* set start details */
其中NAME
是进程名称。
因此,单行命令是(用您的进程名称替换php
):
sudo dtrace -n '
inline string NAME = "php";
syscall:::entry
/(NAME == strstr(NAME, execname)) || (execname == strstr(execname, NAME))/
{ @num[probefunc] = count(); }
'