如何在Mac OS X中跟踪程序的系统调用

时间:2015-06-25 08:52:29

标签: macos strace

我想跟踪查找命令to debug some performance issues所做的系统调用,但我无法弄清楚如何在Mac OS X Yosemite上执行此操作。我如何跟踪任意程序的系统调用,类似于 strace 在FreeBSD上执行的操作?我对跟踪文件系统相关的调用特别感兴趣。

2 个答案:

答案 0 :(得分:26)

在当前版本的macOS下,无法跟踪SIP覆盖的路径下的可执行文件(如/usr/bin)。

您可以通过在主目录中复制可执行文件并跟踪副本来绕过此步骤:

cp /usr/bin/find find
sudo dtruss ./find …

答案 1 :(得分:24)

您可以在

中使用 dtruss
sudo dtruss find ~/repo -depth 2 -type d -name '.git'

该实用程序的manual page将帮助您根据需要定制工具的使用。