有人能理解在SGen打开的情况下发生在Monotouch 5.2.6中的崩溃吗
本文关键字:Monotouch 崩溃 情况下 能理解 SGen | 更新日期: 2023-09-27 18:26:49
在启用了Monotouch 5.2.6和SGen的iOS5模拟器中,我随机出现了下面的崩溃。这是一个调试版本。这是在点击按钮后发生的。点击会产生一个新的线程,显示一个小的进度指示器。当它完成思考时,它将用动画交换两个视图(在UI线程上运行所有这些)。
我想知道从哪里开始,因为我没有得到托管堆栈跟踪。它正在尝试布局一个已不存在的UITableViewCell,我说得对吗?
Native stacktrace:
0 MobileApp 0x00094fbc mono_handle_native_sigsegv + 284
1 MobileApp 0x0000be72 mono_sigsegv_signal_handler + 178
2 libsystem_c.dylib 0x9c5ee59b _sigtramp + 43
3 ??? 0xffffffff 0x0 + 4294967295
4 QuartzCore 0x04176891 -[CALayer actionForKey:] + 89
5 QuartzCore 0x0417982d _ZL12actionForKeyP7CALayerPN2CA11TransactionEP8NSString + 82
6 QuartzCore 0x0417c9c3 _ZN2CA5Layer12begin_changeEPNS_11TransactionEjRP11objc_object + 131
7 QuartzCore 0x04181f82 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 388
8 QuartzCore 0x04178205 -[CALayer setPosition:] + 68
9 QuartzCore 0x04177cba -[CALayer setFrame:] + 675
10 UIKit 0x021d8590 -[UIView(Geometry) setFrame:] + 198
11 UIKit 0x022e1731 -[UILabel setFrame:] + 233
12 UIKit 0x02439731 -[UITableViewCellLayoutManager layoutSubviewsOfCell:] + 4511
13 UIKit 0x02390e34 -[UITableViewCell layoutSubviews] + 2650
14 UIKit 0x021e3322 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 178
15 CoreFoundation 0x011d6e72 -[NSObject performSelector:withObject:] + 66
16 QuartzCore 0x0417392d -[CALayer layoutSublayers] + 266
17 QuartzCore 0x0417d827 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 231
18 QuartzCore 0x04103fa7 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 377
19 QuartzCore 0x04105ea6 _ZN2CA11Transaction6commitEv + 374
20 QuartzCore 0x041059d3 _ZN2CA11Transaction14release_threadEPv + 65
21 libsystem_c.dylib 0x9c5dfe0c _pthread_tsd_cleanup + 85
22 libsystem_c.dylib 0x9c59864c _pthread_exit + 146
23 libsystem_c.dylib 0x9c5989a0 pthread_exit + 33
24 MobileApp 0x0020434e thread_exit + 30
25 MobileApp 0x00203d03 thread_start_routine + 163
26 MobileApp 0x001aeb20 gc_start_thread + 80
27 libsystem_c.dylib 0x9c596ed9 _pthread_start + 335
28 libsystem_c.dylib 0x9c59a6de thread_start + 34
本机代码正试图访问已释放的内容。
这是关键一行:
4 QuartzCore 0x04176891 -[CALayer actionForKey:] + 89
您需要弄清楚[CLAyer actionForKey:]试图做什么(以及在哪个对象上)-请记住,这可能是许多事情(调用委托/事件、调用虚拟方法、获取属性)。然而,在没有看到实际代码的情况下很难做到具体。