如何确定某些函数在调试状态下调用的位置?我遇到了EXC_I386_GPFLT错误,因此我不希望在我的测试用例中调用这样的函数。
答案 0 :(得分:1)
您可以尝试使用名为Address Sanitizer
的新Xcode 7功能。
在Xcode中转到Product -> Scheme -> Edit Scheme
,选择Run
,打开Diagnostics
标签,然后选中Enable Address Sanitizer
。
然后Product -> Clean
投影并再次运行。
Objective-C和C代码容易受到内存损坏等问题的影响 堆栈和堆缓冲区溢出和释放后使用问题。什么时候 发生这些内存违规,您的应用程序可能无法预测或崩溃 显示奇怪的行为。内存损坏问题很难跟踪 因为崩溃和奇怪的行为往往难以重现, 原因可能远不是问题的根源。
您在构建方案中启用了地址清理程序。一旦启用, 应用程序内置了添加的工具以捕获内存违规 立即,使您能够在该地方检查问题 它发生的地方。还提供了其他诊断信息, 例如故障地址和有效对象之间的关系 在堆和分配/释放信息,这可以帮助您 精确定位并快速解决问题。地址消毒剂是 高效 - 快速,足以经常使用和互动 应用。它在OS X,模拟器和iOS上都受支持 设备