gpt4 book ai didi

macos - 如何在不以 root 身份运行的情况下从一开始就跟踪程序

转载 作者:行者123 更新时间:2023-12-04 01:48:15 24 4
gpt4 key购买 nike

我正在编写一个工具,通过调用 DTrace 来跟踪用户指定的程序。

如果我的工具使用 dtrace -c 将程序作为 DTrace 的子进程运行,那么我不仅不能向程序传递任何参数,而且程序以 DTrace 的所有特权运行——即作为 root(我在Mac OS X)。这使得某些应该工作的事情中断,并且显然使许多不应该工作的事情成为可能。

我知道的另一个解决方案是自己启动程序,通过发送它来暂停它 SIGSTOP , 将其 PID 传递给 dtrace -p ,然后继续发送 SIGCONT .问题是程序在 DTrace 收集符号信息时运行了几秒钟而没有被跟踪,或者,如果我在继续该过程之前休眠了几秒钟,DTrace 会提示 objc<pid>:<class>:<method>:entry不匹配任何探针。

有没有办法可以在用户帐户下运行程序,而不是以 root 身份运行,但仍然可以让 DTrace 从一开始就跟踪它?

最佳答案

类似 sudo dtruss -f sudo -u <original username> <command>对我有用,但后来我对此感到难过。

我提交了一个关于它的雷达错误,并将其作为#5108629 的副本关闭。

关于macos - 如何在不以 root 身份运行的情况下从一开始就跟踪程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1204256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com