JRG*_*per 4 debugging objective-c ios
我正在使用TestFlight SDK并收到了几个与此相同的崩溃报告.但是,我无法理解它,崩溃的根本原因来自报告?
Exception
SIGSEGV
2 libsystem_c.dylib 0x32862e92 _sigtramp + 42
3 Foundation 0x33750d1c -[NSError dealloc] + 60...
Exception reason
SIGSEGV
Stacktrace
0 MyAppName 0x0013faba testflight_backtrace + 382
1 MyAppName 0x00140708 TFSignalHandler + 264
2 libsystem_c.dylib 0x32862e92 _sigtramp + 42
3 Foundation 0x33750d1c -[NSError dealloc] + 60
4 libobjc.A.dylib 0x39230488 _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 168
5 CoreFoundation 0x31de9440 _CFAutoreleasePoolPop + 16
6 Foundation 0x33751f7a -[NSAutoreleasePool drain] + 122
7 CoreData 0x35e0a4b2 -[NSManagedObjectContext save:] + 1210
8 MyAppName 0x000b7168 MR_swapMethodsFromClass + 18076
9 CoreData 0x35e0dbc0 developerSubmittedBlockToNSManagedObjectContextPerform + 88
10 libdispatch.dylib 0x335974b6 _dispatch_client_callout + 22
11 libdispatch.dylib 0x33598dca _dispatch_main_queue_callback_4CF$VARIANT$up + 226
12 CoreFoundation 0x31e79f3a __CFRunLoopRun + 1290
13 CoreFoundation 0x31decebc CFRunLoopRunSpecific + 356
14 CoreFoundation 0x31decd48 CFRunLoopRunInMode + 104
15 GraphicsServices 0x36e092ea GSEventRunModal + 74
16 UIKit 0x320db2f8 UIApplicationMain + 1120
17 MyAppName 0x00099122 main (main.m:17)
18 MyAppName 0x000990d7 start + 39
Run Code Online (Sandbox Code Playgroud)
额外细节:
编辑
仍在努力解决这个问题...我已经能够重新创建它(但没有附加调试器).
这是最奇怪的部分 - 如果用户拥有较旧版本的应用程序并安装更新(通过Test Flight分发),则会出现此错误.
但是,如果他们首先删除旧应用程序并安装更新,则不会发生错误.
Rob*_*ier 16
让我们来看看它:
0 MyAppName 0x0013faba testflight_backtrace + 382
1 MyAppName 0x00140708 TFSignalHandler + 264
Run Code Online (Sandbox Code Playgroud)
那是TestFlight.这是在崩溃发生之后,所以肯定不是原因.
2 libsystem_c.dylib 0x32862e92 _sigtramp + 42
Run Code Online (Sandbox Code Playgroud)
这是我们抓住崩溃的时刻."sigtramp"是信号"蹦床".这是一种奇特的方式,说"我发现了一个信号(崩溃),现在我将反弹到代码中的其他地方."
3 Foundation 0x33750d1c -[NSError dealloc] + 60
Run Code Online (Sandbox Code Playgroud)
啊.这个很重要.我们在解除分配时崩溃了NSError.这意味着NSError过度释放或保留不足.
4 libobjc.A.dylib 0x39230488 _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 168
5 CoreFoundation 0x31de9440 _CFAutoreleasePoolPop + 16
6 Foundation 0x33751f7a -[NSAutoreleasePool drain] + 122
Run Code Online (Sandbox Code Playgroud)
悲伤......它在排出自动释放池时表现出来.这意味着实际的bug可能距离这里很远.但至少我们知道对象的类型.NSZombies可以用来试图找到特定的对象.
7 CoreData 0x35e0a4b2 -[NSManagedObjectContext save:] + 1210
Run Code Online (Sandbox Code Playgroud)
并且在MOC保存期间自动释放池正在耗尽.这表明它可能与您的核心数据代码有关.这至少是你先看的地方.
要记住的事情是:
这是最奇怪的部分 - 如果用户拥有较旧版本的应用程序并安装更新(通过Test Flight分发),则会出现此错误.
但是,如果他们首先删除旧应用程序并安装更新,则不会发生错误.
可能在您的升级代码中.最有可能在Core Data迁移中.审核NSError该代码区域的每次使用.消除所有编译器和分析器警告.并尝试NSZombies,如果它可重复.
| 归档时间: |
|
| 查看次数: |
1778 次 |
| 最近记录: |