Xcode 7有一项名为地址清理程序的新功能,该功能在release notes中引入,并附有以下简短说明:
- 地址清理程序指出可能在运行时崩溃的代码,即使您无法自我复制
除了具有讽刺意味的措辞之外,我认为这里的意思是地址消毒剂应该检测(不可再现的)可能导致访问违规或其他致命应用程序错误的问题。
Apple Developer添加了更多信息,清楚地表明这是一个诊断工具(不是编译器功能),旨在在调试时捕获内存损坏问题。
我自己做了一些测试,但无法将一段代码放在一起,以便在运行时触发地址消毒剂。有人可以给我一个例子吗?我正在寻找C中的样本,但客观C也可以。
答案 0 :(得分:4)
Here is more information关于地址消毒剂,这是一个简单的测试:
char test()
{
char buffer[4] = { 9, 8, 7, 6 };
unsigned index = 4;
return buffer[index];
}