Что означает эта ошибка dtrace?

при работе iotop -C 5 12 на моем Macbook Pro конца 2010 года (10.6.7) я получаю повторные экземпляры этой ошибки:

dtrace: error on enabled probe ID 5 (ID 19507: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0

что причина этого и как я могу это исправить?

14
задан Chris R
20.03.2023 5:39 Количество просмотров материала 3125
Распечатать страницу

4 ответа

по данным этот блог (С более подробной информацией здесь), это вызвано iTunes, который DTrace "фильтрует", поэтому его нельзя использовать, чтобы попытаться сломать DRM iTunes.

выход из iTunes устраняет ошибку.

6
отвечен Daniel Serodio 2023-03-21 13:27

ошибки выводятся в stderr, и их можно отфильтровать, выполнив следующую команду:

sudo iotop -C 5 12 2>/dev/null

это имеет побочный эффект фильтрации любых других ошибок, которые могут возникнуть. Я обнаружил, что это хороший компромисс, поскольку он сделал мой вывод iotop читаемым.

Я не уверен, что причина ошибок, к сожалению. Я искал, но пока не смог ничего найти.

9
отвечен David Ludwig 2023-03-21 15:44

короче говоря, ошибка отображается при попытке трассировки процесса, который запросил не трассироваться.

технически ошибка вызвана не iTunes, а процессом, который отключил трассировку, используя код, подобный следующему.

ptrace(PT_DENY_ATTACH, 0, 0, 0);

этот код устанавливает флаг на процесс на уровне ядра, который предотвращает отладку и трассировку процесса.

самое известное приложение, которое делает это просто случается iTunes, приложение, чей DRM этот API, вероятно, был изобретен для, НО API доступен для других процессов. Я видел, как ряд сторонних приложений используют этот API.

конечно, как и все ДРМ его можно сломать. Варианты обхода этой функции защиты от трассировки и отладки варьируются от использования отладчика до пропуска вызова API расширений ядра, исправляющих эту функцию в пространстве ядра.

4
отвечен Alexander O'Mara 2023-03-21 18:01

принято от https://unix.stackexchange.com/a/276219

это потенциально связано с El Capitan и его защитой целостности системы (csrutil status) что может повлиять на dtrace поведение.

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

csrutil enable --without dtrace

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

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

csrutil disable # Not recommended.

посмотреть:

1
отвечен joeyhoer 2023-03-21 20:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх