iOS崩溃:无法访问内存位置

时间:2013-03-22 18:21:36

标签: iphone crash uikit

我在崩溃记者中看到了很多这些崩溃,但我不知道是什么原因造成的。

我不能让它在本地重现。

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x70000008
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                     0x3ba9f5b0 _objc_msgSend + 16
1   UIKit                               0x35a73313 -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1311
2   UIKit                               0x35a8a7cf -[UITableView layoutSubviews] + 207
3   UIKit                               0x35a46803 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 259
4   QuartzCore                          0x357f0d8b -[CALayer layoutSublayers] + 215
5   QuartzCore                          0x357f0929 CA::Layer::layout_if_needed(CA::Transaction*) + 461
6   QuartzCore                          0x357f185d CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 17
7   QuartzCore                          0x357f1243 CA::Context::commit_transaction(CA::Transaction*) + 239
8   QuartzCore                          0x357f1051 CA::Transaction::commit() + 317
9   QuartzCore                          0x357f0eb1 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 61
10  CoreFoundation                      0x33c106cd __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 21
11  CoreFoundation                      0x33c0e9c1 __CFRunLoopDoObservers + 277
12  CoreFoundation                      0x33c0ed17 __CFRunLoopRun + 743
13  CoreFoundation                      0x33b81ebd _CFRunLoopRunSpecific + 357
14  CoreFoundation                      0x33b81d49 _CFRunLoopRunInMode + 105
15  GraphicsServices                    0x377362eb _GSEventRunModal + 75
16  UIKit                               0x35a97301 _UIApplicationMain + 1121
17  Our App Name                        0x00011d83 main (main.m:21)
  • 崩溃报告已被象征化
  • 我知道这是UITableView试图更新。
  • 我知道这是试图访问不允许访问的内存的表视图。
  • 我不知道它是什么表视图。它可能是应用程序中的任何一个。

如果您对更多调试信息有更好的想法。


编辑:

这在生产应用程序中发生。我 CAN NOT 让它在调试模式下本地重现。

2 个答案:

答案 0 :(得分:2)

转到编辑方案>运行>诊断>启用Guard Malloc&启用Zombie Objects

enter image description here

这应该会为您提供有关下一次崩溃的更多信息!我有一个类似的经验,我正在使用的库在它正在使用的缓冲区之外编辑了一点。它几乎没有坠毁,但Guard Malloc马上发现了它。即使崩溃只发生在AD Hoc发行版中,也从未发生在调试器中。如果在发送消息之前内存被取消分配,NSZombies将会有所帮助。但是,NSZombies只会在崩溃时提供帮助。

答案 1 :(得分:0)

原来在动画中存在一个错误,当包含的表格视图滚动时,重复没有被正确取消。自从该修复程序发布以来,在崩溃报告中没有看到这一点。