sigsegv 在 iPhone 上因 crittercism 崩溃

Posted

技术标签:

【中文标题】sigsegv 在 iPhone 上因 crittercism 崩溃【英文标题】:sigsegv crash on iphone from crittercism 【发布时间】:2012-09-16 10:11:13 【问题描述】:

我有几个 sigsegv 崩溃来自 crittercism,但我不太确定如何开始调试。唯一属于我的代码行是从崩溃线程开始的主调用。

从 crittercism 复制崩溃线程的堆栈跟踪:

原因:

2012 年 9 月 24 日 下午 2 点 38 分 14 秒 主要(main.m:11)

堆栈:

0 0 libobjc.A.dylib 0x356265b0 objc_msgSend + 15 1 1 UIKit 0x3861c313 + 1310 2 2 UIKit 0x386337cf + 206 3 3 UIKit 0x385ef80b + 258 4 4 石英核心 0x34f56d63 + 214 5 5 石英核心 0x34f56901 + 460 6 6 石英核心 0x34f57835 + 16 7 7 石英核心 0x34f5721b + 238 8 8 石英核心 0x34f57029 + 316 9 9 UIKit 0x386786e5 + 572 10 10 UIKit 0x386784a3 + 66 11 11 UIKit 0x38677391 + 1464 12 12 UIKit 0x385ed1ef + 2458 13 13 UIKit 0x385ec6d5 + 72 14 14 UIKit 0x385ec123 + 6154 15 15 图形服务 0x3779f5a3 + 590 16 16 核心基础 0x372f0683 + 14 17 17 核心基础 0x372efe9 + 212 18 18 核心基础 0x372eecb7 + 646 19 19 核心基础 0x37261ebd CFRunLoopRunSpecific + 356 20 20 核心基础 0x37261d49 CFRunLoopRunInMode + 104 21 21 图形服务 0x3779e2eb GSEventRunModal + 74 22 22 UIKit 0x38640301 UIApplicationMain + 1120 23 23 MyApp 0x35bf 主 (main.m:11)

【问题讨论】:

此外,我还有很多其他奇怪的崩溃。可能是因为系统在内存不足警告后关闭了应用程序? 【参考方案1】:

首先,您需要“符号化”崩溃日志。有很多网页可以指导您。

由于此堆栈以 objc_msgSend 结束,因此最可能的原因是悬空指针。

要调试这些,我建议使用 NSZombies。如果你在模拟器上测试,你可以试试“Guard malloc”。

【讨论】:

【参考方案2】:

此崩溃是由于在指向已释放对象的指针上调用方法引起的。这是您代码中某个非常常见的引用计数错误,它包含在 UIKit 元素上。但是,在实践中您应该做的是将您的 .DSYM 文件上传到 crittercism。它可以通过网站手动完成,也可以通过 Web API call 作为自动构建过程的一部分来完成。

【讨论】:

以上是关于sigsegv 在 iPhone 上因 crittercism 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

应用程序仅在 iPhone 8 iOS 14.4.1 上因内存不足而崩溃

设备和模拟器上的调试工作时,临时 iPhone SIGSEGV 崩溃

React Native saveToCameraRoll 在 Android 上因“权限被拒绝”错误而失败

EWS 在 Jenkins 上因“读取 ECONNRESET”而失败

opencv make 在 Ubuntu 上因 CUDA 支持而失败

shutil.rmtree 在 Windows 上因“访问被拒绝”而失败 [重复]