Xcode7 Enable Address Sanitizer神奇功能

AddressSanitizer 原理:

AddressSanitizer的原理是当程序创建变量分配一段内存时,将此内存后面的一段内存也冻结住,标识为中毒内存。
当程序访问到中毒内存时(越界访问),就会抛出异常,并打印出相应log信息。调试者可以根据中断位置和的log信息,识别bug。如果变量释放了,变量所占的内存也会标识为中毒内存,这时候访问这段内存同样会抛出异常(访问已经释放的对象)。

适用性:

AddressSanitizer在malloc对象和内存越界方面拥有更强大的捕获能力。

AddressSanitizer使用:

AddressSanitizer的使用其实非常简单,在Xcode上方选择设备的地方,点击工程名字,选择Edit Scheme.

Xcode7 Enable Address Sanitizer神奇功能_第1张图片
22.png

在Diagnostics中选中enable address sanitizer即可。

Xcode7 Enable Address Sanitizer神奇功能_第2张图片
11.png

AddressSanitizer开启之后,在debug过程中,如果遇到EXC_BAD_ACCESS的问题,Xcode会自动中断,抛出异常

Xcode7 Enable Address Sanitizer神奇功能_第3张图片
33.png

你可能感兴趣的:(Xcode7 Enable Address Sanitizer神奇功能)