Tengo un problema de memoria en una aplicación de iPhone que me gustaría depurar con MallocStackLogging
. El error involucra el giroscopio, así que tengo que depurar en el dispositivo, no en el simulador.¿Cómo usar MallocStackLogging en el dispositivo?
He configurado la variable de entorno MallocStackLogging
y el iPhone registra adecuadamente los registros de la pila Mallock:
MyApp(1856) malloc: recording malloc stacks to disk using standard recorder
MyApp(1856) malloc: stack logs being written into /private/var/mobile/Applications/1FD1F8D2-5D30-4AA7-B426-C52FE20266DE/tmp/stack-logs.1856.MyApp.index
MyApp(1856) malloc: Please issue: cp /private/var/mobile/Applications/1FD1F8D2-5D30-4AA7- B426-C52FE20266DE/tmp/stack-logs.1856.MyApp.e8z3IL.link /tmp/
Ahora ¿Cómo puedo trabajar con ellos?
Puedo transferirlos a la Mac usando el Xcode Organizer. Pero, ¿qué debería hacer con estos dos archivos?
- pila-logs.1856.MyApp.index
- stack-logs.1856.MyApp.e8z3IL.link
he intentado mover los archivos en/tmp en el Mac, y llamó:
$ malloc_history 1856 -all_events
malloc_history cannot examine process 1856 because the process does not exist.
Claramente, el comando malloc_history
busca procesos en ejecución en la máquina local. Me falta una opción para especificar el archivo de registro manualmente.
¿Hay alguna manera de hacer que esto funcione ya sea directamente trabajando con Xcode en el dispositivo (sin jailbreak) o después de transferir los registros a la Mac?
Sufrí el mismo problema con el simulador. Estaremos ansiosos por obtener algunas respuestas de personas aquí. Por cierto, seguí este enlace: http://www.numbergrinder.com/node/53 –
Miré a mi alrededor y lo intenté por mí mismo ... parece que no se puede, no sé qué tan buenos son los archivos de registro si no puedes leerlos ... shell en el depurador no es bueno, porque ese no es el shell en el dispositivo, es tu bash local ... aunque desmantelado ... He intentado importar los archivos de registro en instrumentos, sin dados. –
Empiezo a creer que * malloc_history * solo funciona si su aplicación se ejecuta en el simulador. Cuando se está ejecutando la aplicación en el dispositivo, no creo que haya una forma de señalar malloc_history al dispositivo. – Raphael