内存泄漏是iOS项目中经常出现的问题。 Xcode泄漏仪器和静态分析仪找不到所有这些。你怎么找到漏洞?
答案 0 :(得分:0)
我开发了lib,可以捕获泄漏的物体,并可视化彼此之间的关系。
所有交互都通过Xcode控制台进行。按Xcode调试器中的暂停并输入类似的内容:
po [parser run:@"leaks saveGraph /Users/yourName/Documents/dot/mem.txt"]
该命令为点工具生成mem.txt文件(http://www.graphviz.org/)。必须安装一个点。然后我们可以通过;
将mem.txt转换为dot文件dot -Tdot mem.txt -o mem.dot && open ./mem.dot
这将显示当前时刻应用中的实时和死亡对象的图形。一些例子:
https://github.com/soniccat/memCheck-for-iOS/raw/master/images/pic1.png
https://github.com/soniccat/memCheck-for-iOS/raw/master/images/pic2.png
DetailViewController到UILabel的箭头表示DetailViewController的对象包含UILabel的对象。虚线箭头表示物体何时死亡。活物体具有白色背景,死物体具有灰色背景。
关于解析器命令格式和特殊过滤器(fromList),它删除了您在memCheck-for-iOS git hub page上可以阅读的所有不必要的对象。
快乐使用:)