Kernel

啟用探針時出錯:syscall::open_nocancel:entry):在 DIF 的操作 #2 中使用者訪問無效

  • April 27, 2016

我有以下單行來顯示程序打開的文件:

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

csrutil status這可能與可能影響dtrace行為的 El Capitan 及其係統完整性保護 ( ) 有關。

潛在的修復包括將 Mac 重新啟動到恢復模式(-R在啟動時),然後在終端執行:

csrutil enable --without dtrace

保持啟用 SIP,但禁用 DTrace 限制(注意:這是未記錄的參數)。

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

csrutil disable # Not recommended.

看:

引用自:https://unix.stackexchange.com/questions/275175