使用 sudo 运行时如何重定向 OS X dtruss 输出?

Chr*_*kle 9 sudo bash redirection macos

dtruss在 Mac OS X 10.9 上运行。简单的例子是:

sudo -c ls
Run Code Online (Sandbox Code Playgroud)

但我想将dtruss输出捕获到一个文件中。我看到一些东西表明我可以做这样的事情:

sudo bash -c 'dtruss -c ls >x'
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,输出dtruss仍然会进入终端,并且来自的文件列表ls被重定向到该文件。

如何将输出重定向dtruss到文件?

Luk*_*ane 9

我一直这样运行它:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
Run Code Online (Sandbox Code Playgroud)
  • -f 说要遵循子进程。
  • -p 指定要跟踪的进程 ID。
  • 12345是进程 ID 的占位符。你可以通过查看top或来获得ps -A
  • 2>将标准错误传送到输出文件中。出于某种原因,dtruss 在 stderr 上输出所有内容。