在Xcode中调试iOS,设置以下环境变量:
MallocCheckHeapStart=1
MallocCheckHeapEach=10
MallocStackLogging=1
MallocStackLoggingNoCompact=1
如果堆检查器发现损坏,它将报告并中断,每10次检查堆操作。
那么我怎么知道最后10个堆操作是什么呢?
我知道malloc_info --stack-history
可以给我一个特定指针的历史,但在这种情况下,我不知道任何指针,我只知道堆损坏发生在最后10个操作。
是否有一种方法可以列出最后X堆操作,以便我可以找到堆损坏的罪魁祸首?
你已经读过这篇文章了吗?这里引用了gdb命令malloc_history
…
我不确定这是否是你要找的,但也许它有帮助。