2011-07-30 6 views
9

No estoy interesado en iniciar sesión en marcos o debajo de las cubiertas, pero solo en mi código de nivel de fuente al ingresar y salir de cada método. Me gustaría que proporcione el nombre de la clase y el nombre del método y registrarlo en un archivo o al menos hacer que pase volando por la pantalla.¿Hay alguna manera de rastrear/rastrear y registrar todos los métodos, por nombre de clase y método, durante una sesión de depuración?

Mi consulta es si es posible con las instalaciones existentes de Xcode/Debugger/Instruments, ¿puedo implementarlo de una manera sencilla que no sea una declaración NSLog en cada entrada y salida de método, o hay una herramienta comercial que proporciona esta capacidad ?

Estoy hablando de métodos de origen aquí ... no procesos de ejecución o hilos. Gracias.

+0

¿Qué hay mal con el uso de instrumentos, como el instrumento Time Profiler, para esto? – jtbandes

+0

Bueno ... porque no rastrea, rastrea ni registra mis métodos de código fuente, que es lo que estaba preguntando en mi pregunta. – Ric

+0

Ciertamente le permite ver qué métodos se ejecutaron ... – jtbandes

Respuesta

9

Dave Dribin cubre precisamente esto en su artículo Tracing Objective-C messages.

La parte que está después es probablemente la siguiente:

Si se establece la variable NSObjCMessageLoggingEnabled entorno para YES, el tiempo de ejecución de Objective-C se registrar todos los mensajes de Objective-C enviados a un archivo llamado/tmp/msgSends - <pid>.

+1

esto suena realmente en la marca. Intenté configurar el entorno para la depuración en Xcode 4.1 pero no veo el archivo llamado/tmp/msgSends- en cualquier lugar. En realidad, no puedo encontrar una carpeta/tmp. ¿Tienes alguna pista de dónde se cuelga? Gracias. – Ric

+0

Estoy allí. No me había dado cuenta de que la carpeta tmp estaba oculta y necesitaba llegar a ella a través de Terminal. Muchas gracias. – Ric

1

Xtrace (https://github.com/johnno1962/Xtrace) tiene muchas características y funciona bien para el seguimiento de Objective-C. Uno necesita acceso de fuente a su proyecto, como parece tener, y puede emitir mensajes de entrada/salida, como parece desear.

  • configuración en tiempo de depuración - puede codificar o configurar el seguimiento durante la depuración
  • no complicada integración - uno .mm y uno .h
  • NSRegularExpression coincidentes - clases, métodos, tipos
Cuestiones relacionadas