28 votos

Ahora que El Capitan es "desarraigado", ¿hay alguna manera de conseguir dtrace de trabajo?

He encontrado dtrace ser una herramienta invaluable para la depuración y solución de problemas de todo tipo de cuestiones, por no hablar de las dos docenas de dtrace kit de herramientas de secuencias de comandos enviados por Apple como parte de El Capitán.

En El Cap aunque, la ejecución de dtrace por lo general resulta en un sin fin de arrojar de errores haciendo dtrace todos, pero inútil.

25voto

Mykroft Puntos 4292

La Integridad del sistema de Protección en 10.11 puede ser desactivada, aunque no es algo que usted debe hacer a la ligera.

Puede deshabilitar SIP totalmente haciendo lo siguiente:

  1. Reinicia tu mac
  2. Mantenga ⌘R durante el reinicio
  3. A partir de las Utilidades del menú, ejecutar Terminal
  4. Ingrese el comando siguiente
csrutil disable

Alternativamente, usted puede volver a habilitar SIP mientras sigue permitiendo dtrace a de trabajo mediante la ejecución de los siguientes:

csrutil enable --without dtrace

Tenga en cuenta, que al hacerlo aparecerá el siguiente aviso:

Esta es una configuración no admitida, propensos a romperse en el futuro y dejar a su equipo en un estado desconocido.

Una vez que se reinicie, dtrace a funcionar como lo hizo en Yosemite.

6voto

Charles Puntos 11

Copia el código binario en un directorio que no está "restringido", por ejemplo, /tmp

csrutil disable no trabaja para dtruss en algún grado. Pero como @J. J dijo chroot obras, esto me inspiró.

Todavía no sé por qué esto funciona. Puede tener algo que ver con el "directorios protegidos", supongo.

Aquí está la prueba:

CC@~ $ csrutil status
System Integrity Protection status: disabled.
CC@~ $ sudo dtruss /bin/echo
dtrace: failed to execute /bin/echo: dtrace cannot control executables signed with restricted entitlements
CC@~ $ cp /bin/echo /tmp
CC@~ $ sudo dtruss /tmp/echo

SYSCALL(args)        = return
thread_selfid(0x0, 0x0, 0x0)         = 46811 0
csops(0x0, 0x0, 0x7FFF51B6CA20)      = 0 0
issetugid(0x0, 0x0, 0x7FFF51B6CA20)      = 0 0
shared_region_check_np(0x7FFF51B6A918, 0x0, 0x7FFF51B6CA20)      = 0 0
stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x7FFF51B6BEA8, 0x7FFF51B6CA20      = 0 0

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X