DTruss

DTruss это аналог strace на linux системах, использующая DTrase для этого. Эта утилита позволяет вам отслеживать системные вызовы у запушенного процесса, либо запустить процесс и отследживать его вызовы.

Замечание

В последних версия Mac OS некоторые пути из которых запущены процессы находятся под защитой SIP (System Integrity Protection), которая запрещает отслеживание системных вызовов, например путь /usr/bin. Есть выход, который я бы не рекомендовал вам. Можно отключить для некоторых процессов эту защиту в recovery mode вашей системы. В любом случае вы можете использовать DTruss для процессов которые не находятся под защитой SIP.

Примеры

запуск и отслеживание команды “df -h”

dtruss df -h

отслеживание процесса с PID 1871

dtruss -p 1871

отслеживать все процессы с именем “tar”

dtruss -n tar

запустить test.sh и отслеживать все дочерние процессы и форки

dtruss -f test.sh

запуск “date” команды и вывести реальное и процессорное время затраченое на вызов

dtruss -eo date

Вы можете компнуть глубже и разобраться в DTrace напрямую. DTrace это мощьный инструмент для профилирования в реальном времени. Можете почитать здесь

Instruments

Как альтернативный путь, вы можете попробовать Istruments, который идет в поставке XCode (Документация).

Запустить профилирование, сохранить результат в файл result.trace и открыть этот результат.

instruments  -d result.trace -t 'System Trace' /bin/ls
open result.trace
Instruments demo