Mac OSX: 使用 dtruss?

Mac OSX: Using dtruss?

我正在尝试 dtruss Mac OSX Catalina 中的进程,但是 dtrace 报告错误。

$ sudo dtruss whoami                 
dtrace: system integrity protection is on, some features will not be available

dtrace: failed to execute whoami: (os/kern) failure

我基本上是在尝试获取堆栈跟踪。任何人都可以提供有关完成此操作的指导吗?

谢谢

本文介绍了如何完成此操作: Enabling D-Trace on system with SIP

您可以通过执行以下操作完全禁用 SIP:

  1. 重新启动您的 mac
  2. 重启时按住 ⌘R
  3. Utilities 菜单,运行 Terminal
  4. 输入以下命令
csrutil disable

或者,您可以重新启用 SIP,同时仍然允许 dtrace 工作,方法是 运行 执行以下操作:

csrutil enable --without dtrace

如果你在 apple silicon(像现在的 m1),你不应该按 ⌘R 进入恢复模式。另一种方法是按住电源按钮,直到屏幕提示您“正在加载设置...”。

如果你想跟踪像 ls 这样的内置命令,csrutil enable --without dtrace 对我不起作用,但 csrutil disable 可以。