Kernel
啟用探針時出錯:syscall::open_nocancel:entry):在 DIF 的操作 #2 中使用者訪問無效
我有以下單行來顯示程序打開的文件:
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.
看: