初识Enable Guard Malloc

关于Enable Guard Malloc,苹果官方解释是:Use libgmalloc to catch common memory problems such as buffer overruns and use-after-free.

大致意思是:使用libgmalloc来捕获缓存区溢出和访问已经被释放掉的内存等常见的内存问题。

这个是等同于默认malloc库功能的另外一个调试库,为了定位大内存越界访问问题。

使用环境:只能在模拟器上使用,若在真机上运行,会直接报错。

在模拟器上运行,打开Enable Guard Malloc,控制台通常会打印下列信息:

通过这些文本记录,我们可以获取到以下信息:

1.配置将被放置在16字节边界。

2.一些缓冲区溢出可能不会注意到。

3.可以使用向量指令(例如:SSE)。

Enable Guard Malloc的具体作用及实例:

作用:能够帮我们定位到内存越界访问问题。

实例:

这段代码,很明显有内存访问越界问题,但当我们没有打开Enable Guard Malloc时,运行并不会报错。

打开Enable Guard Malloc,程序能直接定位到引起崩溃的代码行。

所以,当我们使用模拟器来运行程序时,该功能能帮我们捕获到大部分的内存错误。

代价:程序运行的成本由于缓存效率更慢。

使用方式:点击工程,Edit Scheme->Run

初识Enable Guard Malloc_第1张图片

你可能感兴趣的:(初识Enable Guard Malloc)