Отслеживание стека iOS BugSense для сбоя при запуске приложения - PullRequest
2 голосов
/ 02 декабря 2011

Я недавно включил BugSense в своем приложении, чтобы попытаться собрать отчеты о сбоях.Я вижу много сбоев, которые выглядят так, как будто они происходят сразу после запуска моего приложения (я не смог выполнить репликацию ни на одном из моих собственных устройств).Проблема в том, что трассировка стека, которую я получаю от BugSense, делает вид, будто мое приложение на самом деле ничего не делает, чтобы вызвать сбой.Все, что я вижу, - это самый первый основной вызов, чтобы запустить AppDelegate в трассировке, а затем кучу библиотек, которые не очень хорошо символизируют.Я могу получить помощь с указанием в правильном направлении.Я не могу выполнить репликацию на своих собственных устройствах (и на устройствах нескольких других людей), а трассировка стека от BugSense взята из выпущенного в открытом доступе приложения.

Это трассировка стека, которую мне дал BugSense.

libsystem_kernel.dylib              0x3089232c __pthread_kill   70444
libsystem_c.dylib                   0x37d2cfeb abort   290795
libc  abi.dylib                     0x3078ef6b abort_message   28523
libc  abi.dylib                     0x3078c34d _ZL17default_terminatev   17229
libobjc.A.dylib                     0x37d7d2e3 _objc_terminate   37603
libc  abi.dylib                     0x3078c3c5 _ZL19safe_handler_callerPFvvE   17349
libc  abi.dylib                     0x3078c451 _ZdlPv   17489
libc  abi.dylib                     0x3078d825 __cxa_current_exception_type   22565
libobjc.A.dylib                     0x37d7d235 objc_exception_rethrow   37429
CoreFoundation                      0x38187545 CFRunLoopRunSpecific   62789
CoreFoundation                      0x381873a5 CFRunLoopRunInMode   62373
GraphicsServices                    0x37f5efcd GSEventRunModal   16333
UIKit                               0x31d07743 UIApplicationMain   202563
AppNameHD                           0x000039af 0x1000   10671

Я использую инструкции от, Atos не может получить символы из dSYM архивного приложения для символизации.Он работал для других трассировок стека, где я на самом деле вижу часть своего кода, вызывающего проблему, просто не дает мне никакой информации для вышеупомянутой трассировки.

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Этот отчет о сбое не очень поможет, вам нужна обратная трассировка последнего исключения, чтобы увидеть, какие части вашего кода вызывают сбой.Как видно из трассировки стека, исключение перебрасывается, что произошло в другом цикле выполнения.

Более новая версия PLCrashReporter, на которой также основано создание отчетов об ошибках BugSense, обеспечивает это.http://code.google.com/p/plcrashreporter/

Примечание: служба HockeyApp.net использует последнюю версию PLCrashReporter в своем SDK с открытым исходным кодом ( QuincyKit.net ), предоставляя обратные трассировки и исключения последнихсимволика на сервере.(Я являюсь членом обоих)

1 голос
/ 02 декабря 2011

Те символизируют просто отлично. То, что они искалечены. Это, вероятно, не очень поможет, но вы можете разобрать их:

% c++filt -n _ZdlPv
operator delete(void*)

Я не думаю, что вы получаете исключение из сторожевого таймера, но сбой при запуске заставляет меня задуматься об этом, и если в журнале аварий включен BADF00D.

...