iOS: диагностика SIGABRT

#ios #lldb #sigabrt

#iOS #lldb #sigabrt

Вопрос:

Мое приложение периодически выходит из строя с помощью SIGABRT, но в консоли (почти) нет информации, указывающей причину.

 dyld4 config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=@executable_path/Frameworks/libclang_rt.asan_ios_dynamic.dylib:/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00000001b8b16504 libsystem_kernel.dylib`mach_msg_trap   8
frame #1: 0x00000001b8b16b9c libsystem_kernel.dylib`mach_msg   76
frame #2: 0x0000000181c43688 CoreFoundation`__CFRunLoopServiceMachPort   372
frame #3: 0x0000000181c4797c CoreFoundation`__CFRunLoopRun   1212
frame #4: 0x0000000181c5b3b8 CoreFoundation`CFRunLoopRunSpecific   600
frame #5: 0x000000019d5eb38c GraphicsServices`GSEventRunModal   164
frame #6: 0x00000001845fb6a8 UIKitCore`-[UIApplication _run]   1100
...

(lldb) po $arg1
268451845

(lldb) po $arg2
117442566
 

Первая строка содержит ссылку на libMainThreadChecker , которая может указывать на то, что что-то вызывает код пользовательского интерфейса из фонового потока, но есть также ссылки на другие инструменты отладки, например libBacktraceRecording и libViewDebuggerSupport , так что, возможно, это ничего не значит.

У меня есть точка останова исключения (Exception: All, Break On: Throw), но она не срабатывает. Рабочий процесс отладки> Всегда показывать разборку не отмечен, оптимизация отключена, формат отладочной информации является КАРЛИКОВЫМ с dSYM.

Я искал SIGABRT, а также значения arg1, arg2, но ничего полезного не появилось. Как, черт возьми, вы понимаете, что является причиной этого?

ОБНОВЛЕНИЕ: из журнала сбоев:

 Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: SIGNAL 6 Abort trap: 6
 

Это происходит только на устройстве, все симуляторы работают нормально.

Комментарии:

1. Проверьте эту страницу на сайте разработчиков Apple.