【发布时间】:2017-06-24 23:23:47
【问题描述】:
我想使用 DTrace 来查看“我的 shell 脚本进行了哪些系统调用”。
我做了一个非常简单的shell脚本shell.sh,并赋予它执行权限:
#!/bin/bash
grep 1 <<< 123
我cd'd 进入了它的目录,并运行了这个简单的 DTrace 脚本:
sudo dtrace -n 'syscall:::entry
/pid == $target/
{
@[probefunc] = count();
}' -c ./trace-me.sh
我得到这个错误输出:
dtrace: failed to execute ./trace-me.sh: unknown error
这里发生了什么?我已经运行csrutil enable --without dtrace。如果我删除 -c arg(并将 $target 替换为 pid),DTrace 脚本运行良好。
这只是另一个 Mac 问题吗?我正在运行 macOS Sierra 10.12.5 Beta。
【问题讨论】:
-
看看这个答案,它可能会解决你的问题:stackoverflow.com/a/36760408/499581