color buttons ios debugging crash static-libraries debug-symbols

ios - buttons - ionic text



Simbolizando el registro de fallos para la aplicación con la biblioteca estática (1)

Recibo informes de fallas de una aplicación, pero Xcode no puede simbolizar los símbolos que son específicos de mi aplicación:

Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libsystem_kernel.dylib 0x32c43a1c __pthread_kill + 8 1 libsystem_c.dylib 0x33a0a3b4 pthread_kill + 52 2 libsystem_c.dylib 0x33a02bf8 abort + 72 3 libsystem_c.dylib 0x33a306d4 __assert_rtn + 140 4 MyApplication 0x0000dd54 0x9000 + 19796 5 MyApplication 0x0000dbda 0x9000 + 19418 6 MyApplication 0x000103f6 0x9000 + 29686 7 MyApplication 0x0001035e 0x9000 + 29534 8 MyApplication 0x0000f3cc 0x9000 + 25548 9 MyApplication 0x00025d1e 0x9000 + 118046 10 CoreFoundation 0x35847efc -[NSObject(NSObject) performSelector:withObject:] + 16 11 Foundation 0x36eec7a2 __NSThreadPerformPerform + 262 12 CoreFoundation 0x358b1a72 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 6 13 CoreFoundation 0x358b3758 __CFRunLoopDoSources0 + 376 14 CoreFoundation 0x358b44e4 __CFRunLoopRun + 224 15 CoreFoundation 0x35844ebc CFRunLoopRunSpecific + 224 16 CoreFoundation 0x35844dc4 CFRunLoopRunInMode + 52 17 GraphicsServices 0x3446b418 GSEventRunModal + 108 18 GraphicsServices 0x3446b4c4 GSEventRun + 56 19 UIKit 0x344a2d62 -[UIApplication _run] + 398 20 UIKit 0x344a0800 UIApplicationMain + 664 21 MyApplication 0x0000b174 main (main.m:14) 22 MyApplication 0x0000b124 0x9000 + 8484

Excepto por la línea en main.m. Sé que tengo el archivo dSYM todavía en el archivo de Xcode. Intenté usar la línea de comando para hacer referencia directamente a esos símbolos de depuración, pero siempre obtengo el mismo resultado. Intenté usar atos para buscar el símbolo directamente y no pude encontrarlo. Verifiqué que era el dSYM correcto al comparar el UUID.

Encuentra main.m cada vez, por lo que parece que está medio funcionando, pero no puede encontrar nada más.

Estoy utilizando una biblioteca estática en esta aplicación: ¿es posible que el bloqueo se produzca en la biblioteca estática? ¿Esa información de depuración estaría en un conjunto separado de símbolos de depuración? Dice que la biblioteca responsable es mi aplicación ... ¿diría el nombre de la biblioteca estática si fue responsable del bloqueo?

¡Gracias!


Las bibliotecas estáticas están vinculadas al ejecutable de su aplicación, por lo que después de vincularlas no podrá identificar el origen original de ese código. Por lo tanto, siempre nombrará su aplicación como fuente binaria.

Es probable que esos marcos no estén siendo simbolizados, debido a la biblioteca estática que incluyó. Esto sucede si la biblioteca estática no tiene los símbolos, sino que está desprovista de ella. Ocurre con bastante frecuencia para las compilaciones de versiones de bibliotecas estáticas, donde la configuración predeterminada es la misma que para las aplicaciones, para quitar los símbolos. (¡Para aplicaciones, esto es lo correcto!)

En ese caso, los símbolos no se copiarían en el dSYM, porque no puede encontrarlos en la biblioteca estática.