Как прочитать отчет об ошибке трассировки стека - PullRequest
2 голосов
/ 04 ноября 2011

Скажите, что у меня есть следующее (из TestFlight):

0 MyApp 0x000ef881 MyApp + 395393
1 MyApp 0x000efc97 MyApp + 396439
2 libsystem_c.dylib 0x37dc6539 _sigtramp + 48
3 MyApp 0x00093e51 MyApp + 20049
4 Foundation 0x338fd943 __NSFireDelayedPerform + 414
5 CoreFoundation 0x36daea63 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14
6 CoreFoundation 0x36dae6c9 __CFRunLoopDoTimer + 364
7 CoreFoundation 0x36dad29f __CFRunLoopRun + 1206
8 CoreFoundation 0x36d304dd CFRunLoopRunSpecific + 300
9 CoreFoundation 0x36d303a5 CFRunLoopRunInMode + 104
10 GraphicsServices 0x32a0bfed GSEventRunModal + 156
11 UIKit 0x319e0743 UIApplicationMain + 1090
12 MyApp 0x00091dcf MyApp + 11727
13 MyApp 0x00091d58 MyApp + 11608

Вот более длинный:

0 MyApp 0x00077881 MyApp + 395393
1 MyApp 0x00077c97 MyApp + 396439
2 libsystem_c.dylib 0x37e32539 _sigtramp + 48
3 UIKit 0x31a206e7 -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 178
4 UIKit 0x31a207a5 -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 368
5 UIKit 0x31a207a5 -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 368
6 UIKit 0x31a212df -[UIView(Internal) _addSubview:positioned:relativeTo:] + 334
7 UIKit 0x31a2118b -[UIView(Hierarchy) addSubview:] + 30
8 UIKit 0x31ab8d79 -[UITransitionView transition:fromView:toView:] + 980
9 UIKit 0x31b0198f -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 4842
10 UIKit 0x31b5b461 -[UIViewController _dismissViewControllerWithTransition:from:completion:] + 1732
11 UIKit 0x31abeaf1 -[UIViewController dismissViewControllerWithTransition:completion:] + 756
12 MyApp 0x00019e73 MyApp + 11891
13 MyApp 0x0002c3c3 MyApp + 86979
14 Foundation 0x3395d50f __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 + 18
15 CoreFoundation 0x36e12577 ___CFXNotificationPost_block_invoke_0 + 70
16 CoreFoundation 0x36d9e0cf _CFXNotificationPost + 1406
17 Foundation 0x338d13fb -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
18 Foundation 0x338d2c2b -[NSNotificationCenter postNotificationName:object:] + 30
19 MyApp 0x0002dd69 MyApp + 93545
20 MyApp 0x00023a5b MyApp + 51803
21 MyApp 0x0002425d MyApp + 53853
22 MyApp 0x0001a5c1 MyApp + 13761
23 UIKit 0x31bcdbc7 -[UIApplication _applicationOpenURL:payload:] + 270
24 UIKit 0x31afaa51 -[UIApplication _callApplicationResumeHandlersForURL:payload:] + 104
25 UIKit 0x31afa30d -[UIApplication _handleApplicationResumeEvent:] + 1496
26 UIKit 0x31a1e961 -[UIApplication handleEvent:withNewEvent:] + 1080
27 UIKit 0x31a1e3bf -[UIApplication sendEvent:] + 54
28 UIKit 0x31a1dd2d _UIApplicationHandleEvent + 5808
29 GraphicsServices 0x32a78e13 PurpleEventCallback + 882
30 CoreFoundation 0x36e1a553 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38
31 CoreFoundation 0x36e1a4f5 __CFRunLoopDoSource1 + 140
32 CoreFoundation 0x36e19343 __CFRunLoopRun + 1370
33 CoreFoundation 0x36d9c4dd CFRunLoopRunSpecific + 300
34 CoreFoundation 0x36d9c3a5 CFRunLoopRunInMode + 104
35 GraphicsServices 0x32a77fed GSEventRunModal + 156
36 UIKit 0x31a4c743 UIApplicationMain + 1090
37 MyApp 0x00019dcf MyApp + 11727
38 MyApp 0x00019d58 MyApp + 11608

Теперь я довольно смущен тем, что это за ошибка?Любая идея?Или, может быть, учебник, который поможет мне прочитать это более по-человечески?

1 Ответ

2 голосов
/ 04 ноября 2011

Вам необходимо обозначить свой отчет о сбое в TestFlight.Перейдите на страницу «Сборка сбоев» в TestFlight, в верхней части вы увидите область, в которую можно поместить сжатый файл dSYM.Зайдите в Xcode 4 и запустите Организатор, вы можете сделать это, пройдя через меню Window > Organizer.Нажмите кнопку Archives вверху.Щелкните правой кнопкой мыши (Control + Left Click) на сборке, загруженной вами в TestFlight, и выберите Показать в Finder .Щелкните правой кнопкой мыши файл * .xarchive и выберите Показать содержимое пакета .Теперь перейдите в каталог dSYMs и щелкните правой кнопкой мыши файл .dSYM (например, MyApp.app.dSYM ) и выберите Сжать "MyApp.app.dSYM ".

Теперь перетащите этот сжатый dSYM-файл в раздел страницы TestFlight Build Crashes, который запрашивает его.Это загрузит файл в TestFlight и символизирует ваши журналы сбоев для этой сборки.Иногда это занимает несколько минут, но в конечном итоге ваши отчеты о сбоях должны иметь немного больше смысла.

Найдите в журнале сбоев кадры стека, в которых упоминается ваше приложение, чтобы собрать воедино то, что произошло.В конце вы должны увидеть сообщение или символ, который вы узнаете в журнале аварий.В конце этой строки должно быть, если вам повезет, имя файла класса и номер строки внутри этого файла, в котором произошел сбой.Вы ищете последний метод, выполняемый вашим кодом, прежде чем вы начнете видеть сбой системы и сообщать об ошибках.Используя код в месте, указанном в отчете о сбое, и сообщения об ошибках, которые система сообщала о сбое, вы, вероятно, сможете определить причину или что-то, что укажет вам правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...