Xcode:在调试中确定xcode中函数的调用者

时间:2015-10-11 10:21:49

标签: objective-c xcode swift

如何确定某些函数在调试状态下调用的位置?我遇到了EXC_I386_GPFLT错误,因此我不希望在我的测试用例中调用这样的函数。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用名为Address Sanitizer的新Xcode 7功能。

在Xcode中转到Product -> Scheme -> Edit Scheme,选择Run,打开Diagnostics标签,然后选中Enable Address Sanitizer

Address sanitizer

然后Product -> Clean投影并再次运行。

  

Objective-C和C代码容易受到内存损坏等问题的影响   堆栈和堆缓冲区溢出和释放后使用问题。什么时候   发生这些内存违规,您的应用程序可能无法预测或崩溃   显示奇怪的行为。内存损坏问题很难跟踪   因为崩溃和奇怪的行为往往难以重现,   原因可能远不是问题的根源。

     

您在构建方案中启用了地址清理程序。一旦启用,   应用程序内置了添加的工具以捕获内存违规   立即,使您能够在该地方检查问题   它发生的地方。还提供了其他诊断信息,   例如故障地址和有效对象之间的关系   在堆和分配/释放信息,这可以帮助您   精确定位并快速解决问题。地址消毒剂是   高效 - 快速,足以经常使用和互动   应用。它在OS X,模拟器和iOS上都受支持   设备

New features in Xcode 7