Ошибка при включенном тесте: syscall :: open_nocancel: entry): недопустимый доступ пользователя в действии № 2 в DIF

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

kenorb
источник

Ответы:

14

Это потенциально связано с El Capitan и его Системной защитой целостности ( csrutil status), которая может повлиять на dtraceповедение.

Возможное исправление включает в себя перезагрузку Mac в режиме восстановления ( - Rво время загрузки), а затем в терминале запустить:

csrutil enable --without dtrace

оставить SIP включенным, но отключить ограничения DTrace (примечание: это недокументированный параметр ).

Или полностью отключите SIP:

csrutil disable # Not recommended.

Увидеть:

kenorb
источник