我想跟踪查找命令to debug some performance issues所做的系统调用,但我无法弄清楚如何在Mac OS X Yosemite上执行此操作。我如何跟踪任意程序的系统调用,类似于 strace 在FreeBSD上执行的操作?我对跟踪文件系统相关的调用特别感兴趣。
答案 0 :(得分:26)
在当前版本的macOS下,无法跟踪SIP覆盖的路径下的可执行文件(如/usr/bin
)。
您可以通过在主目录中复制可执行文件并跟踪副本来绕过此步骤:
cp /usr/bin/find find
sudo dtruss ./find …
答案 1 :(得分:24)
您可以在
中使用 dtrusssudo dtruss find ~/repo -depth 2 -type d -name '.git'
该实用程序的manual page将帮助您根据需要定制工具的使用。