【发布时间】:2010-11-20 22:48:31
【问题描述】:
在调试过程中,控制台总是向我吐出一条错误消息:“Break on _NSLockError() to debug”
我的假设是:在 XCode 中我必须出现某个断点,以便调试器在发生此错误的点停止。
我该怎么做?
【问题讨论】:
在调试过程中,控制台总是向我吐出一条错误消息:“Break on _NSLockError() to debug”
我的假设是:在 XCode 中我必须出现某个断点,以便调试器在发生此错误的点停止。
我该怎么做?
【问题讨论】:
使用 Xcode 4 GUI:
如上所述,调试器将中断锁,从而导致死锁,因此您可以检查调用堆栈并希望确定原始锁发生的位置。
【讨论】:
1/ 从菜单中选择 Build -> Build and Debug
2/ 单击“GDB”图标 - 您将切换到“调试器控制台”
3/ 按 Control+C 中断您的二进制文件。你会得到 gdb 提示符。
4/ 输入“b _NSLockError”,设置断点后继续执行。
(gdb) b _NSLockError
Breakpoint 8 at 0x911db1a9
(gdb) c
Continuing.
5/ 您可以与 GDB 进行交互,就像它从控制台运行一样,即您可以再次 Ctrl+C 并查看当前断点:
(gdb) info breakpo
Num Type Disp Enb Address What
8 breakpoint keep y 0x911db1a9 <_NSLockError+9>
【讨论】:
要在 XCode 中为您的项目自动执行此操作:
【讨论】: