我开始通过 BugSense 从我的 iOS 应用程序接收崩溃报告。我在我的应用程序中包含了调试符号,并获取了有关错误的信息,例如。 “* -[NSMutableArray objectAtIndex:]:索引 0 超出空数组的边界”以及堆栈跟踪,例如:
Full Stacktrace
0 CoreFoundation __exceptionPreprocess 114
1 libobjc.A.dylib objc_exception_throw 24
2 CoreFoundation -[__NSArrayM objectAtIndex:] 184
3 Myapp Myapp 738167
4 UIKit -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] 662
5 UIKit -[UITableView _userSelectRowAtPendingSelectionIndexPath:] 130
6 Foundation __NSFireDelayedPerform 368
7 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ 14
8 CoreFoundation __CFRunLoopDoTimer 850
9 CoreFoundation __CFRunLoopRun 1088
10 CoreFoundation CFRunLoopRunSpecific 230
11 CoreFoundation CFRunLoopRunInMode 58
12 GraphicsServices GSEventRunModal 114
13 GraphicsServices GSEventRun 62
14 UIKit -[UIApplication _run] 404
15 UIKit UIApplicationMain 670
16 Myap p Myapp 11901
17 Myapp Myapp
但是,我想对报告进行符号化,以便我可以准确指出代码中的错误所在。如何从 Bugsense 获取报告数据并执行此操作?有没有办法从 BugSense 下载“常规”崩溃报告并使用它,或者它们提供的数据是否足以以某种方式工作?我知道报告来自哪个版本的应用程序,因此我知道要对哪些二进制文件进行符号化。
最佳答案
BugSense 的工作原理是获取设备上的符号并将它们发布到服务器上,其格式类似于您在崩溃日志中看到的格式。 BugSense 获取异常堆栈跟踪,当它找不到时,崩溃的线程堆栈跟踪。由于各种原因,这并不总是完美的。
您发布的堆栈跟踪是部分符号化的。看起来 BugSense 在获取您自己的代码中的符号时遇到了问题。
如果您遵循了这封信的使用指南,则可能是框架本身的失败。 atos 应该可以帮助您发现代码中的确切方法调用。
免责声明:我为 BugSense-iOS.framework 编写代码。
关于ios - 如何符号化来自 BugSense 的 iOS 崩溃报告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7675317/