Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 了解我的iPhone应用程序崩溃日志_Ios_Memory_Crash_Report_Memory Leaks - Fatal编程技术网

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的情况下运行,以查看您是双重释放某些内容,还是释放未分配的内容。您好,感谢各位的建议。问题是我自己没有撞车。可能是间歇性的问题,也可能只有旧设备才会崩溃,而我的设备不会。很难说。如果我自己能很容易地复制它,我就能找到它。它不太可能与旧设备有关。通常情况下,这些问题要么发生在应用程序使用的特定序列中,要么发生在长时间使用后。无论是哪种情况,都可以使用或创建用户交互测试用例,以不同的顺序和更长的时间运行您的应用程序。这极有可能以可复制的方式揭示错误。