gpt4 book ai didi

cocoa - 调试 Objective-C 垃圾收集崩溃的策略

转载 作者:行者123 更新时间:2023-12-03 17:27:09 27 4
gpt4 key购买 nike

我有一个非常令人沮丧的崩溃程序,它影响了我的一小部分用户。根据我的分析,它似乎与运行 10.5 的 PowerPC 用户隔离。当垃圾收集器在后台运行时,它会默默地终止我的应用程序。这是崩溃日志中的相关片段。

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000093db26f8
Crashed Thread: 1

Application Specific Information:
objc[8361]: garbage collection is ON
test_node_integrity: FreeListNode 0x1184000 { _prev = 0x0, _next = 0xffffffff, _size = 0 } failed integrity check.
Thread 0:
0 libSystem.B.dylib 0x95a4c1f8 mach_msg_trap + 8
1 libSystem.B.dylib 0x95a5311c mach_msg + 56
2 com.apple.CoreFoundation 0x96a04394 CFRunLoopRunSpecific + 1812
3 com.apple.HIToolbox 0x9003fb14 RunCurrentEventLoopInMode + 264
4 com.apple.HIToolbox 0x9003f938 ReceiveNextEventCommon + 412
5 com.apple.HIToolbox 0x9003f778 BlockUntilNextEventMatchingListInMode + 84
6 com.apple.AppKit 0x94d18244 _DPSNextEvent + 596
7 com.apple.AppKit 0x94d17bfc -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 112
8 com.apple.AppKit 0x94d1189c -[NSApplication run] + 744
9 com.apple.AppKit 0x94ce2298 NSApplicationMain + 440
10 com.secondgear.checkoff 0x00002e48 start + 64

Thread 1 Crashed:
0 libauto.dylib 0x93db26f8 Auto::Admin::test_node_integrity(Auto::FreeListNode*) + 392
1 libauto.dylib 0x93db8dec Auto::Zone::block_deallocate_internal(void*) + 168
2 libauto.dylib 0x93da80d4 auto_collection_thread(void*) + 148

我无法在我的旧 PPC Mac 上重现崩溃情况,而且该错误的模糊性质使得确定 Mac 上发生崩溃的位置有些困难。

我可以使用任何调试策略或工具来帮助隔离这个问题吗?也许我可以将一些信息传递给用户,以帮助找出导致崩溃的位置/原因?

最佳答案

这通常是由以下三种原因之一引起的;

  • 内存损坏

  • 捆绑卸载

  • 内存不足(耗尽地址空间)

不过,奇怪的是它是 PPC 特定的。确保用户都运行最新版本的操作系统,并且不会意外地在Rosetta(不支持GC)下运行您的应用程序。

您还可以向用户询问他们的控制台日志。里面可能还有更多证据。

除此之外,我没有什么可以提供的。调试此类问题确实需要在本地计算机上重现案例,否则没有太多证据。

关于cocoa - 调试 Objective-C 垃圾收集崩溃的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619705/

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