macOS: разрыв связи между драйвером и процессом после spindump

Я работаю над Daemon/Kext, который общается, используя общую очередь между пользователем и пространством ядра, которое называется IOSharedDataQueue,

После того, как я несколько раз вручную запускал диагностику spindump, он не мог больше получать сообщения от моего драйвера IOKit во время ожидания IODataQueueDataAvailable - похоже, что синхронизация между потребителем (kext) и производителем (мой процесс-демон) прерывается, и это нужно каким-то образом сбросить. Вопрос в том, как сбросить очередь и как обнаружить этот сценарий в процессе.

только после того, как я соединю процесс с отладчиком lldb и нажму continueПохоже, очередь снова заработала.

Любая идея, как справиться с этой ситуацией изнутри процесса (программно).

0 ответов

Другие вопросы по тегам