【发布时间】:2012-08-03 23:23:29
【问题描述】:
我已经成功地让我的调试版本在以编程方式指定条件时停止执行,使用目标 C 中的标准 NSAssert(condition_which_should_evaluate_true, @"error message") 语句,并在断点导航器。
很好,但是大多数时候我在调试时,我也想在那之后继续正常的程序执行。通常在断言失败后继续程序有助于追踪混乱/错误的来源。至少就我记忆中的我在不同平台上编程而言。
在 Objective C 开发中是否有标准的方法来做到这一点?
【问题讨论】:
-
如果要继续执行,只需将错误打印到屏幕上即可。
-
为什么不只使用一个断言宏来调用您始终设置断点的例程?
-
@Hot Licks:不得不爬堆栈以找出调用的位置、访问内存等很烦人。下面的
kill方法没有这种不便。 -
调试器向您显示堆栈——“调用的位置”只需点击一下即可。
-
@Hot Licks: 刚试了下,无论如何我都无法让它工作;它会记录但不会中断,可能是因为宏不是“代码”,而是断点设置器忽略的预处理器的替换指令。在任何情况下,如果您使用与静态函数等相同原理的东西,那么在调试时,当注意力和注意力非常重要时,这些额外的“点击”对我来说很快就会增加。此外,静态函数方法仅在打开断点时才有效。所以
kill方法提供了更大的 FWIW 灵活性。
标签: objective-c breakpoints assertions continuation