EXC_BAD_ACCESS
问题一直困扰着很多程序员,因为这样的问题不够直观,因为一旦出现 EXC_BAD_ACCESS
,Xcode 马上跳到 main.m 文件中,即使设置了全局断点也很难定位到错误位置,需要花费很多时间才能解决。
后来了解到早在 Xcode 7 中,Apple 就为我们增加了关于这样问题的调试选项 Runtime Sanitizer
,使用它,当有类似的问题出现时,我们会得到更详细的错误信息,定位错误更简单。
操作步骤:
Edit Scheme -> Run(Debug) -> Diagnostics -> Runtime Sanitization,勾选 Address Sanitizer。
当出现类似错误时,Xcode 会显示出更加详细的错误信息,甚至会有内存使用情况的展示。