Instruments的使用 逻辑查错,内存泄漏分析等工具集

时间:2022-06-03 03:31:08

原创文章,转载请注明

XCode 开发后期,要对代码进行改进和优化,查内存泄漏是其中一项重要工作,今天下午偷了点时间,把前段时间的代码稍微整理了一下,顺带用了下这个工具,还真发现了些问题。这里记录一下,以备忘!

为了能直接地看到有问题的代码的出处,故意写了如下代码:

    Player* l_player = new Player();
CCLog("%d", l_player->getCurrentSceneIndex());
char* l_a = (char*)malloc(100);
memset(l_a, 0, 100);
CCLog("%s", l_a);

开始查错

Instruments的使用 逻辑查错,内存泄漏分析等工具集

这个过程需要点时间,然后弹出

Instruments的使用 逻辑查错,内存泄漏分析等工具集

选择IOS->Memory->Leaks 如上图
在Leaks下选择Call Tree, 在内存提示泄漏处展开调用的堆栈

Instruments的使用 逻辑查错,内存泄漏分析等工具集

在自己的逻辑代码中写进去查看

Instruments的使用 逻辑查错,内存泄漏分析等工具集

这里就是新发现的内存泄漏的地方,
加上

    //Delete l_pData >=-Rct-=<
CC_SAFE_DELETE_ARRAY(l_pData);

这个问题解决。另入一处泄漏便是上面所加的测试代码

Instruments的使用 逻辑查错,内存泄漏分析等工具集

把这一处测试代码也删除,重新XCode->Profile, 所有问题解决

Instruments的使用 逻辑查错,内存泄漏分析等工具集

以上!