相关疑难解决方法(0)

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

我想跟踪find命令发出的系统调用来调试一些性能问题但是我无法弄清楚如何在Mac OS X Yosemite上执行此操作.我如何跟踪任意程序的系统调用,类似于FreeBSD上的strace?我对跟踪文件系统相关的调用特别感兴趣.

macos strace

37
推荐指数
3
解决办法
3万
查看次数

如何在 mac 上调用 strace 的等效命令——最好是从 python 调用?

独立的可重现示例

\n

我需要通过 python 跟踪任何命令的输出。但我只需要将以下 amd linux 命令转换为 mac m1/arm 命令(因此 python 可能不相关):

\n
strace -e trace=execve -v -s 100000000 -xx -ttt -ff -o output.txt sh -c \'echo hi\'\n
Run Code Online (Sandbox Code Playgroud)\n

我怎么做?

\n

这对我来说失败了:

\n
 \xe2\x9d\xaf sudo dtruss -t execve -f sh -c \'echo hi\'\ndtrace: system integrity protection is on, some features will not be available\n\ndtrace: failed to execute sh: Operation not permitted\n
Run Code Online (Sandbox Code Playgroud)\n

笔记:

\n
    \n
  • 我可以完全控制输入,因此我可以在我的 mac 中执行 sudo 和相关命令(主要是为了调试我的代码,因此它可以在 pycharm 上运行)
  • \n
\n
\n

来自brew的strace失败

\n

我似乎无法从brew …

python macos strace systrace apple-m1

7
推荐指数
2
解决办法
7367
查看次数

标签 统计

macos ×2

strace ×2

apple-m1 ×1

python ×1

systrace ×1