如何调试EXC_BAD_ACCESS错误

Ada*_*Lee 27 xcode objective-c lldb

我收到了一个错误

EXC_BAD_ACCESS代码= 2 at0xb0987654

我想知道如何打印出0xb0987654的值?

Jas*_*ues 34

要调试EXC_BAD_ACCESS,通常可以通过启用僵尸对象来找出悬空指针的位置.

Xcode中

选择编辑方案,然后选择Run部分中的Diagnostics选项卡,然后单击'Zombie Objects'选项.

AppCode

选择编辑目标,然后添加以下环境变量:

NSZombieEnabled=YES
Run Code Online (Sandbox Code Playgroud)

EXC_BAD_ACCESS的另一个原因可能是无限递归,可以通过添加一些日志来找到.

C++更新:

要使用Clang编译器调试C++中的悬空指针,请尝试使用Google的Address Sanitizer(ASAN).

  • 我试过了,没用.因为是导致问题的C++代码. (2认同)