2013-05-01 167 views
0

我收到了一个我无法解释的崩溃日志。我已经四处搜寻,看起来SIGSEGV与记忆有关。但在我的情况下,除了堆栈跟踪中的main.m以外,我自己的代码没有任何内容。此外,它似乎没有象征任何系统库。什么会导致此SIGSEGV错误?

迄今为止发生的这起车祸只发生在一台iPhone上。在其他手机上,我一直无法重现它。现在我完全陷入困境,不知道该继续下去,所以如果有人看到类似这样的事情,那么听到他们的问题和解决方案会很好。

崩溃日志:五月

Incident Identifier: TODO 
CrashReporter Key: TODO 
Hardware Model:  iPhone4,1 
OS Version:  iPhone OS 6.1.3 (10B329) 
Report Version: 104 
Exception Type: SIGSEGV 
Exception Codes: SEGV_ACCERR at 0x41fd5903 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib      0x3b0b9564 0x3b0b6000 + 13668 
1 libobjc.A.dylib      0x3b0bb1d7 0x3b0b6000 + 20951 
2 CoreFoundation      0x33396605 0x332d4000 + 796165 
3 CoreFoundation      0x3339635d 0x332d4000 + 795485 
4 libobjc.A.dylib      0x3b0bea65 0x3b0b6000 + 35429 
5 libc++abi.dylib      0x3ab0b07b 0x3ab0a000 + 4219 
6 libc++abi.dylib      0x3ab0b114 0x3ab0a000 + 4372 
7 libc++abi.dylib      0x3ab0c599 0x3ab0a000 + 9625 
8 libobjc.A.dylib      0x3b0be9d1 0x3b0b6000 + 35281 
9 CoreFoundation      0x332dcf21 0x332d4000 + 36641 
10 CoreFoundation      0x332dcd49 0x332d4000 + 36169 
11 GraphicsServices     0x36eb52eb 0x36eb0000 + 21227 
12 UIKit        0x351f2301 0x3519b000 + 357121 
13 Stylbar        0x0007109f main (main.m:21) 

编辑3TH:

崩溃日志由用户发送。不幸的是,我一直无法重现这个问题,这就是为什么我很难弄清楚这个崩溃日志出了什么问题。

当打开某个视图控制器时,它似乎在同一个用户中连续发生了大约15次。视图控制器会对服务器进行多次调用以加载帖子,评论和图片以及个人资料图片。在打开此视图控制器时执行的所有代码可能超过2000行代码(不包括此代码中使用的RestKit和SBWebImage库)。在这里发布代码对我恐怕没有任何帮助。

+0

这是发生在发射?当点击一个特定的按钮?在调用方法时?请提供更多信息,最好用代码。 – 2013-05-01 15:33:21

回答

0

花时间寻找崩溃原因的最简单而有用的方法是查看代码并关注UIKit具有指向代码的委托的地方。例如,我发现这类事情最常见的地方是UITableView。这些问题难以追查的原因是,它们可能只发生在内存不足的情况下,或者发生在一些非常难以复制的罕见UI情况下。最好只做代码审查,并确保被设置为指向你的类的委托在你自己的对象析构函数中被设置为零。如果你有许多开发人员,通常更好的做法是在整个项目中使用通用表和单元类等更高层次的抽象,而不是让每个开发人员都编写UITableView,并犯下类似的错误,例如忘记删除委托很难找到。

0

SIGSEGV是当应用程序尝试访问不存在的内存地址或某个地址已被其他程序保留的地址时发生的问题。我现在对应用程序有同样的问题,但我必须查看我的代码才能更好地理解它。对于这类问题的一个线索可能是这个东西当量(维基百科中找到):

#include <stdlib.h> 

INT主要(无效)
{
焦炭P = NULL;/ p是指向初始化poiting到“无处”的char的指针*/
* p ='x';/*尝试在'无地址'中保存字符'x'*/
返回0;
}

我希望这可以帮助别人。