Pregunta

Estoy tratando de utilizar symbolicatecrash, y tener resultados interesantes. Un compañero de trabajo construido nuestra estructura de distribución en otra máquina, por lo que me ha enviado el archivo dSYM. Después de ejecutar el archivo symbolicatecrash encuentra en

/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

se llena en todas las funciones de Apple, pero no la mía. El problema parece ser que no puede (o no) localizar el archivo dSYM, potencialmente, ya que tiene información de la máquina de mi compañero de trabajo en ella. Cuando copio la dirección hexadecimal del informe de accidente que pueda usar dwarfdump como esto:

dwarfdump --lookup 0x0001f892 --arch ARMv6 ruta / a / MyApp.app.dSYM

Me da el número de línea de esa sola llamada correctamente. Además, symbolicatecrash es capaz de elaborar los números de línea del juego de nuestro código, pero no de Apple. No sé por qué no puede ver las cosas de Apple, pero todo esto me lleva a creer que el problema está en encontrar el dSYM, como se mencionó anteriormente.

Así. ¿Hay alguna manera de pasar sólo el camino del dSYM en el comando symbolicatecrash, o alguna otra forma de hacer que funcione? Porque, en serio, es completamente tonto para hacer una herramienta que hace algún tipo de magia "búsqueda" para su archivo, sólo para encontrar que no porque no quiere.

Además, cualquier idea de por qué la acumulación de mi compañero de trabajo no se mostrará ninguna de las funciones de Apple? Y ya que estoy aquí, lo que hace el signo "+" media en el archivo de choque? De esta manera:

0x00059f8c - [UIWindow sendEvent:] + 108

¿Fue útil?

Solución

symbolicatecrash es un truco gigante, lo mejor que puede hacer es aprender a hacer las cosas exactamente como se espera de usted. O lo leen de elementos internos y solucionarlo, pero entonces tendría que volver a fijar para la próxima actualización del SDK ...

En este caso creo que el problema es que usted no ha realizado archivo dSYM en la misma carpeta que el paquete de aplicación. Tiene que ser exactamente como lo dejó XCode, y que debe estar en un lugar en el centro de atención, la encontrará. Además, asegúrese de que son los esperados exactamente con los nombres - carcasa exacto de "dSYM" es importante, y he oído que ningún punto se admiten en el nombre de la aplicación debido a un error

.

En caso de duda siempre trato de la opción -v para obtener envió un mensaje de error más detallado.

No hay información número de línea para los binarios de Apple, en lo personal estoy muy feliz de conseguir al menos los nombres de las funciones. Podría haber sido peor.

"- [UIWindow sendEvent:] + 108" significa 108 bytes desde el inicio de la función. La interpretación sólo es útil de estos datos es que si el número es pequeño es probable que sea precisa, si el número es grande es su symbolication está fuera de control.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top