Respostas:
De acordo com este post do blog (com mais informações aqui ), é causado pelo iTunes, que o DTrace "filtra" para que não possa ser usado para tentar quebrar o DRM do iTunes.
Sair do iTunes resolve o erro.
Os erros estão obtendo saída para o stderr e podem ser filtrados executando o comando da seguinte maneira:
sudo iotop -C 5 12 2>/dev/null
Isso tem o efeito colateral de filtrar outros erros que possam surgir. Descobri que é uma troca aceitável, na medida em que torna minha saída iotop legível.
Infelizmente, não sei qual é a causa dos erros. Eu pesquisei, mas ainda não consegui encontrar nada.
Em resumo, o erro é mostrado ao tentar rastrear um processo que solicitou não ser rastreado.
Tecnicamente, o erro não é causado pelo iTunes, mas por um processo que desativou o rastreamento, usando um código como o seguinte.
ptrace(PT_DENY_ATTACH, 0, 0, 0);
Esse código define um sinalizador no processo no nível do kernel, o que impede a depuração e o rastreamento do processo.
O aplicativo mais conhecido que faz isso é o iTunes, o aplicativo para o qual DRM esta API provavelmente foi inventada, mas a API está disponível para outros processos. Eu já vi vários aplicativos de terceiros usarem essa API.
Obviamente, como todo DRM, ele pode ser quebrado. As opções para ignorar esse recurso anti-rastreamento e anti-depuração variam do uso de um depurador para ignorar a chamada da API para extensões do kernel que corrigem o recurso no espaço do kernel.
Retirado de /unix//a/276219
Isso está potencialmente relacionado ao El Capitan e sua System Integrity Protection (
csrutil status
), que podem afetar odtrace
comportamento.A possível correção inclui reiniciar o Mac no modo de recuperação ( ⌘- Rno momento da inicialização) e, em seguida, na execução do Terminal:
csrutil enable --without dtrace
para manter o SIP ativado, mas desative as restrições do DTrace (nota: este é um parâmetro não documentado ).
Ou desative completamente o SIP:
csrutil disable # Not recommended.
Vejo: