gpt4 book ai didi

objective-c - 如何理解 XCode 4 上的崩溃日志

转载 作者:可可西里 更新时间:2023-11-01 05:04:54 25 4
gpt4 key购买 nike

我正在尝试调试导致我的应用程序崩溃的原因。从我的试验中,我意识到某个地方有泄漏,我正在弄清楚。我知道它是因为当我尝试使用这种方法进行调试时 here ,它最终会崩溃,因为一段时间后内存泄漏似乎会膨胀。

为了找出原因,我现在在 XCode 4 上将 NSZombieEnabled 设置为 YES。但我什么也没看到。所以现在我转向崩溃日志。在这里:

Thread 7 Crashed:
0 libsystem_kernel.dylib 0x31b71a1c __pthread_kill + 8
1 libsystem_c.dylib 0x35ceb3b4 pthread_kill + 52
2 libsystem_c.dylib 0x35ce3bf8 abort + 72
3 libsystem_c.dylib 0x35d1f024 free + 104
4 ImageIO 0x32ca35f0 ImageProviderReleaseInfoCallback + 56
5 CoreGraphics 0x31a05284 image_provider_finalize + 8
6 CoreFoundation 0x35aad288 _CFRelease + 160
7 CoreFoundation 0x35aad1ae CFRelease + 82
8 CoreGraphics 0x319fe150 CGImageProviderRelease + 4
9 CoreGraphics 0x31a00bac CGImageBlockSetRelease + 44
10 CoreGraphics 0x31a00b70 img_blocks_destroy + 8
11 CoreGraphics 0x319fdaae CGSImageDataUnlock + 26
12 libRIP.A.dylib 0x309eebae ripc_ReleaseImage + 374
13 libRIP.A.dylib 0x309ecc9c ripc_DrawImage + 536
14 CoreGraphics 0x319f9284 CGContextDelegateDrawImage + 44
15 CoreGraphics 0x319f9142 CGContextDrawImage + 250
16 myapp 0x000c6a28 0x45000 + 530984
17 myapp 0x000c6d6a 0x45000 + 531818
18 myapp 0x000c681c 0x45000 + 530460
19 myapp 0x000c3526 0x45000 + 517414
20 myapp 0x000c3796 0x45000 + 518038
21 Foundation 0x33486382 -[NSThread main] + 38
22 Foundation 0x334f85c6 __NSThread__main__ + 966
23 libsystem_c.dylib 0x35ceb30a _pthread_start + 242
24 libsystem_c.dylib 0x35cecbb4 thread_start + 0

我的问题:是否有关于如何阅读和理解此调试日志的任何提示?也许是涵盖如何一起调试的链接或书籍。谢谢。

最佳答案

在这种情况下,

2   libsystem_c.dylib               0x35ce3bf8 abort + 72
3 libsystem_c.dylib 0x35d1f024 free + 104

free函数检测到释放地址不在堆范围内或无效,然后调用abort函数。

"Technical Note TN2239 - iOS Debugging Magic "是非常有用的文档。请查看“内存分配器”并使用 NSZombieEnabled 等 Malloc* 环境。为中止函数设置断点对于获取参数和跟踪堆栈也很有用。

关于objective-c - 如何理解 XCode 4 上的崩溃日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868340/

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