gpt4 book ai didi

ios - SIGSEGV SEGV_ACCERR 崩溃报告 - 怎么办?

转载 作者:IT王子 更新时间:2023-10-29 08:16:15 37 4
gpt4 key购买 nike

我刚刚在 AppStore 上发布了一个应用 Crittercism崩溃报告 我已经收到了很多关于 SIGSEGV 错误的崩溃报告。 Crittercism 给了我一个 StackTrace 和一些关于使用统计等方便的细节。然而,我仍然对这些符号化的堆栈跟踪感到困惑。我对这种事情一般有几个问题 -

  1. Stack Trace 中的许多类和方法甚至都没有在我的应用程序中使用(据我所知),这让我相信这些崩溃是由 Apple 的私有(private) API 造成的。查看此问题底部附近的 Stack Trace。 如果崩溃报告中的所有方法和类都没有直接在我的代码中实现,我如何知道是什么导致我的应用崩溃?

  2. 崩溃线程中每行末尾的带数字的 + 符号代表什么?

  3. StackOverflow 上大多数询问 SIGSEGV 崩溃的 Q/A 都说它们是由内存泄漏或问题引起的,但是 我怎么会因为内存问题而崩溃如果我在我的 iOS 项目中使用 ARC?难道 ARC 不应该为我管理所有这些事情吗?

  4. 无法复现错误/崩溃怎么办?

  5. 有没有办法真正读取 StackTrace?有什么一般性的东西有助于理解正在发生的事情吗?

这是来自 Crittercism 的主线程崩溃报告的 StackTrace,这个问题与此有关:

Thread: Unknown Name (Crashed)
0 UIKit 0x37307a22 -[UIView(CALayerDelegate) actionForLayer:forKey:] + 138
1 QuartzCore 0x38fdfff7 -[CALayer actionForKey:] + 75
2 QuartzCore 0x38fdffa7 _ZL12actionForKeyP7CALayerPN2CA11TransactionEP8NSString + 59
3 QuartzCore 0x38fdfe93 _ZN2CA5Layer12begin_changeEPNS_11TransactionEjRP11objc_object + 131
4 QuartzCore 0x38fdab87 _ZN2CA5Layer6setterEj12_CAValueTypePKv + 183
5 QuartzCore 0x39007057 -[CALayer setBackgroundColor:] + 35
6 UIKit 0x3731ef51 -[UIView(Internal) _setBackgroundCGColor:withSystemColorName:] + 1021
7 APP NAME 0x000a301d 0x00086000 + 118813
8 libdispatch.dylib 0x3962511f _dispatch_call_block_and_release + 11
9 libdispatch.dylib 0x39628ecf _dispatch_queue_drain$VARIANT$mp + 143
10 libdispatch.dylib 0x39628dc1 _dispatch_queue_invoke$VARIANT$mp + 41
11 libdispatch.dylib 0x3962991d _dispatch_root_queue_drain + 185
12 libdispatch.dylib 0x39629ac1 _dispatch_worker_thread2 + 85
13 libsystem_c.dylib 0x3824da11 _pthread_wqthread + 361

最佳答案

您需要符号化此崩溃报告。数字 7 是您感兴趣的行,但没有符号信息,因此无法将崩溃报告翻译成对您有用的内容。为了象征你需要在你的应用程序商店发布中使用的确切代码。如果你有,那么你可以引用这个答案:

https://stackoverflow.com/a/13280585/1155387

至于其他的:

1) 不要这么快就假设一个内部 API 错误。您的函数显然会更改 View 的背景颜色,从而在内部调用各种方法。它可能以某种方式传递了一个无效值。不要天真地认为您编写的代码是唯一执行过的代码。

2) + 号表示该代码在二进制对象中的偏移量。对你没用。

3) 使用 ARC 很容易出现内存错误,因为 ARC 只处理 Objective-C 的范围。任何 CoreFoundation 对象等都不会被管理。这不一定是这里发生的事情,但 ARC 并不意味着你必须停止考虑所有的内存。

4) 见上文

5) 见上文

关于ios - SIGSEGV SEGV_ACCERR 崩溃报告 - 怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13794562/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com