gpt4 book ai didi

ios - iOS 应用程序中的生产崩溃日志

转载 作者:行者123 更新时间:2023-11-28 05:58:40 27 4
gpt4 key购买 nike

我的崩溃日志没有提供任何信息。使用 atos 命令我得到这个信息说在 loginviewcontroller 中专门化了 UnsafeBufferPointer.count.getter。知道为什么会导致此崩溃吗?

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000010
VM Region Info: 0x10 is not in any region. Bytes before following region: 4340006896
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
__TEXT 0000000102af4000-0000000102af8000

Thread 7 name:
Thread 7 Crashed:
0 libobjc.A.dylib 0x00000001821e4430 objc_msgSend + 16
1 UIKit 0x000000018c543d90 -[UIWindowLayer actionForKey:] + 80 (UIWindow.m:432)
2 QuartzCore 0x0000000186fcb984 -[CALayer layoutSublayers] + 244 (CALayer.mm:9308)
3 QuartzCore 0x0000000186fcfad0 CA::Layer::layout_if_needed(CA::Transaction*) + 332 (CALayer.mm:9182)
4 QuartzCore 0x0000000186f3c31c CA::Context::commit_transaction(CA::Transaction*) + 336 (CALayer.mm:2416)
5 QuartzCore 0x0000000186f63b40 CA::Transaction::commit() + 540 (CATransactionInternal.mm:425)
6 QuartzCore 0x0000000186f64980 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 92 (CATransactionInternal.mm:795)
7 CoreFoundation 0x0000000182f2ecdc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 (CFRunLoop.c:1824)
8 CoreFoundation 0x0000000182f2c694 __CFRunLoopDoObservers + 412 (CFRunLoop.c:1934)
9 CoreFoundation 0x0000000182e4cc78 CFRunLoopRunSpecific + 468 (CFRunLoop.c:3247)
10 WebCore 0x000000018adc184c RunWebThread(void*) + 560 (WebCoreThread.mm:690)
11 libsystem_pthread.dylib 0x0000000182bb02b4 _pthread_body + 308 (pthread.c:740)
12 libsystem_pthread.dylib 0x0000000182bb0180 _pthread_start + 312 (pthread.c:799)
13 libsystem_pthread.dylib 0x0000000182baeb74 thread_start + 4

最佳答案

这在我看来像是堆损坏。可能是 dangling pointer .基本上,-[UIWindowLayer actionForKey:] 正在与指向不再指向有效对象的指针进行交互。这是 objc_msgSend 内崩溃的一个极其常见的原因。

我不敢说这份报告不太可能揭示原因。悬空指针的原因发生在与由此产生的崩溃(影响)不同的时间是很常见的。因此,捕获的堆栈跟踪揭示此指针不再有效的原因的可能性非常低。

在这种情况下我通常推荐的是:

  • 寻找其他看起来与堆损坏相关的崩溃(例如,更多内容在 objc_msgSend 中)
  • 在 Instruments 中试用 Zombies
  • 试试 malloc scribble 或 guardmalloc,这是另外两个不错的内存调试工具

很难,甚至常常不可能推断出堆损坏的原因。因此,请尝试尽可能多地查找和解决问题。他们中的一个完全有可能导致各种崩溃,其中之一可能就是这个。

祝你好运!

关于ios - iOS 应用程序中的生产崩溃日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50597880/

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