启用的探针上的错误:syscall :: open_nocancel:entry):在DIF的操作#2中无效的用户访问


11

我使用以下一种方法来显示按进程打开的文件:

sudo dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'

但是我有很多重复的错误,例如:

dtrace: error on enabled probe ID 4 (ID 946: syscall::open_nocancel:entry): invalid user access in action #2 at DIF offset 24

dtrace: error on enabled probe ID 7 (ID 160: syscall::open:entry): invalid user access in action #2 at DIF offset 24

我知道可以通过重定向到来抑制它们2> /dev/null

这些错误是什么意思,为什么会发生?

dtrace错误,还是某些特定过程导致的?以及如何解决这个问题?

我正在使用OS X 10.11.2

Answers:


14

这可能与El Capitan及其系统完整性保护(csrutil status)有关,后者可能会影响dtrace行为。

可能的解决方法包括将Mac重新引导至恢复模式(- R在引导时),然后在终端中运行:

csrutil enable --without dtrace

保持启用SIP,但禁用DTrace限制(注意:这是未记录的参数)。

或通过以下方式完全禁用SIP:

csrutil disable # Not recommended.

看到:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.