它看起来像在OS X 10.11 El Capitan中,dtruss并且dtrace不能再做他们想要做的事了.这是我尝试运行时遇到的错误sudo dtruss curl ...:
dtrace:无法执行curl:dtrace无法控制使用受限制的权利签名的可执行文件
我遇到过人们注意到这个问题,但到目前为止还没有解决方案.
有没有办法解决这个问题或解决这个问题?
我正在编写一个调用DTrace来跟踪用户指定的程序的工具.
如果我的工具使用dtrace -c将程序作为DTrace的子进程运行,我不仅不能将任何参数传递给程序,而且程序运行时具有DTrace的所有权限 - 就像root(我正在使用) Mac OS X).这使得某些事情应该有效,并且显然会使很多事情变得不可行.
我知道的另一个解决方案是自己启动程序,通过发送它来暂停它,将其SIGSTOP传递给它dtrace -p,然后通过发送它继续它SIGCONT.问题是,当DTrace收集符号信息时,程序运行几秒钟而没有被跟踪,或者如果我在继续进程之前睡了几秒钟,DTrace会抱怨objc<pid>:<class>:<method>:entry没有探测器匹配.
有没有办法可以在用户的帐户下运行程序,而不是root用户,但仍然可以让DTrace从头开始跟踪它?