¿Cómo recostackn los instrumentos datos de iOS sin que DTrace esté disponible?

Estoy tratando de entender el funcionamiento interno de los instrumentos de XCode. En MacOS, puede confiar en DTrace para recostackr todo tipo de datos de perfiles. En iOS, también es capaz de muchas cosas, pero he leído repetidamente que DTrace no ha sido portado a iOS.

Entonces, ¿cómo funciona eso?

La documentation de Apple en DTrace no me dice mucho acerca del funcionamiento interno aquí. Sin embargo, me he dado count de que cuando hago un perfil de mi propia aplicación desde XCode con Instruments, XCode parece buildlo de manera diferente. ¿Podría eso significa que vincula a algunos proveedores independientes de DTrace con mi código?

¡Gracias por adelantado!

/ e: Me encantaría esta pregunta con TODOS 6 PUNTOS DE REPUTACIÓN si solo pudiera …

Para las aplicaciones de iOS que se ejecutan dentro del Simulador, obviamente el Simulador es un progtwig Mac OS X, por lo que puede usar DTrace para monitorear todo lo que hace el Simulador.

Para las aplicaciones de iOS que se ejecutan en un iPhone, estoy de acuerdo con que la documentation proporciona poca información sobre lo que está sucediendo. Probablemente cargue el código de monitoreo en el process de destino en iOS (ya sea agregando el código en time de compilation o vincularlo en time de ejecución) o hay un "depurador tradicional" ejecutándose en iOS contra el process de destino para implementar el seguimiento. Esas son prácticamente las únicas opciones si no hay soporte a nivel de kernel para usar DTrace.

Nunca he usado Instruments, pero lo principal que me salta a la vista es que son capaces de recostackr statistics aparentemente de nivel de SO sobre I / O, que normalmente no serían mensurables sin DTrace. No estoy seguro porque no lo he usado, pero es posible que estas statistics solo sean de seguimiento de E / S desde puntos de input fáciles de detectar (es decir, syscalls relacionados con E / S del process de destino específico) o que haya otras fonts statistics específicas de iOS publicadas por el sistema operativo. Por ejemplo, se pueden get muchas statistics del sistema desde Mac OS X llamando a sysctl . Dependiendo de qué statistics se están recostackndo realmente, los Instrumentos podrían simplemente usar contadores simples como estos para hacer la mayor parte del trabajo.

Si está realmente decidido a encontrar la respuesta, sería un desafío divertido de DTrace resolver este problema con DTracing Instruments. Buena suerte 🙂