O que esse erro dtrace significa?

15

Ao executar iotop -C 5 12 no meu Macbook Pro do final de 2010 (10.6.7), recebo instâncias repetidas desse erro:

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

Qual é a causa disso e como corrigi-lo?

    
por Chris R 17.04.2011 / 20:21

4 respostas

6

De acordo com esta postagem no blog (com mais informações aqui ), é causado pelo iTunes, que o DTrace "filtra", por isso não pode ser usado para tentar quebrar o DRM do iTunes.

Sair do iTunes resolve o erro.

    
por 06.11.2012 / 17:39
9

Os erros estão recebendo saída para stderr e podem ser filtrados executando o comando como tal:

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

Isso tem o efeito colateral de filtrar quaisquer outros erros que possam surgir. Eu achei que fosse uma boa compensação, pois isso tornou minha saída iotop legível.

Não sei qual é a causa dos erros, infelizmente. Eu pesquisei, mas não consegui encontrar nada ainda.

    
por 21.10.2011 / 22:30
4

Em resumo, o erro é exibido ao tentar rastrear um processo que solicitou que não seja rastreado.

O erro não é tecnicamente causado pelo iTunes, mas por um processo que desabilitou 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 essa API do DRM provavelmente foi inventada, mas a API está disponível para outros processos. Eu já vi vários aplicativos de terceiros usarem essa API.

É claro que, como todo DRM, ele pode ser quebrado. As opções para contornar esse recurso de anti-rastreamento e anti-depuração variam de usar um depurador para pular a chamada da API para extensões do kernel que remendam o recurso no espaço do kernel.

    
por 21.07.2015 / 03:17
1

Extraído de link

This is potentially related to El Capitan and its System Integrity Protection (csrutil status) which can affect the dtrace behaviour.

The potential fix includes rebooting Mac into recovery mode (-R at boot time), then in Terminal run:

csrutil enable --without dtrace

to keep SIP enabled, but disable DTrace restrictions (note: this is undocumented parameter).

Or disable SIP completely by:

csrutil disable # Not recommended.

See:

    
por 25.09.2016 / 14:43