Ios 了解我的iPhone应用程序崩溃日志
我很难理解我的事故日志。我可以理解它在第九个线程崩溃了。看看我的第九条线索Ios 了解我的iPhone应用程序崩溃日志,ios,memory,crash,report,memory-leaks,Ios,Memory,Crash,Report,Memory Leaks,我很难理解我的事故日志。我可以理解它在第九个线程崩溃了。看看我的第九条线索 Thread 9 Crashed: 0 libobjc.A.dylib 0x30da4f78 objc_msgSend + 16 1 APLfree 0x0009be1c 0x1000 + 634396 2 Foundation 0x30514a7a -[NSThread main] 3
Thread 9 Crashed:
0 libobjc.A.dylib 0x30da4f78 objc_msgSend + 16
1 APLfree 0x0009be1c 0x1000 + 634396
2 Foundation 0x30514a7a -[NSThread main]
3 Foundation 0x305a858a __NSThread__main__
4 libsystem_c.dylib 0x3763872e _pthread_start
5 libsystem_c.dylib 0x376385e8 thread_start
这是否意味着是libsystem_c.dylib导致了崩溃,还是可能是libobjc.A.dylib
我自己并没有得到崩溃,但我是从我应用程序的真实用户的崩溃日志中获得的。它至少出现在iOS 5.1、5.0、4.3和4.2.6中。因此,在最新的iOS中,这不是一个新的bug
我怀疑释放内存可能有问题,但我不太擅长跟踪这些问题,所以如果有任何关于如何修复内存泄漏等的建议,也会有所帮助
任何帮助都将不胜感激
谢谢
Travis尝试设置僵尸对象启用并重新创建错误: 1按cmd+Shift+ 2选择运行在左面板->诊断在右面板 3在启用僵尸对象时设置复选框
然后尝试重新创建一个bug,您的Xcode将显示“哪里是错误”。通常您从上到下读取堆栈跟踪。这意味着libsystem_c.dylib导致了崩溃,但不是真的,是您造成了崩溃,可能是通过传递无效指针或在不应该的时候释放它。我不擅长阅读iOS代码,但我敢打赌,这份堆栈报告并没有告诉你多少。也许你应该考虑使用一个动态仪器工具来追踪漏洞,看起来valgrind与iOS模拟器一起工作..我同意@KristopherMicinski的观点。另一种方法可能是插入断点&找到导致崩溃的位置,你是否能够在自己的设备上重现崩溃?如果是这样的话,您可以在调试器运行的情况下执行此操作,并确切地查看是哪行代码导致了问题,或者当时释放了哪个对象。您也可以尝试在启用NSZombies的情况下运行,以查看您是双重释放某些内容,还是释放未分配的内容。您好,感谢各位的建议。问题是我自己没有撞车。可能是间歇性的问题,也可能只有旧设备才会崩溃,而我的设备不会。很难说。如果我自己能很容易地复制它,我就能找到它。它不太可能与旧设备有关。通常情况下,这些问题要么发生在应用程序使用的特定序列中,要么发生在长时间使用后。无论是哪种情况,都可以使用或创建用户交互测试用例,以不同的顺序和更长的时间运行您的应用程序。这极有可能以可复制的方式揭示错误。