通过代码设置 Xcode 断点? (如 pause() 函数)

Posted

技术标签:

【中文标题】通过代码设置 Xcode 断点? (如 pause() 函数)【英文标题】:Setting Xcode breakpoint by code? (like pause() function) 【发布时间】:2010-10-23 07:51:57 【问题描述】:

我正在寻找一种通过 Xcode 上的代码暂停程序执行的方法 例如,我可以使用abort() C 函数停止执行。这会弹出 Xcode 调试器。

但是,这会完全退出程序,所以我正在寻找一种方法来暂停执行。所以我可以在检查执行状态后恢复执行。

这是处理轻量级错误所必需的。我尝试了pause() C 函数,但它不起作用。执行中止而不是暂停。

【问题讨论】:

【参考方案1】:

如果您希望能够在出现错误时中断特定函数,请定义如下函数:

void BREAK_HERE_Eonil(void) 
    NSLog(@"Set a breakpoint on BREAK_HERE_Eonil to debug.\n");

只要您想进入调试器,请致电BREAK_HERE_Eonil()。在 Xcode 中的 BREAK_HERE_Eonil() 上设置断点。现在,在调试器下运行。每当您点击此功能时,您都会进入调试器。

您也许还可以使用旧的Debugger() 调用; Xcode 在 Run 菜单下有一个“Stop on Debugger()/DebugStr()”选项。

您也可以只在调试器下运行您的应用程序,并在您想要中断时点击调试器窗口中的大暂停按钮。

【讨论】:

精湛的技术!感谢您的回答!【参考方案2】:

我在 ios 编程中经常使用的另一种方法是在 if 语句中包含断点。像这样:

if (your_condition) 

   //put an Xcode breakpoint here


这样我可以在循环和其他经常被调用而无法设置无条件断点的地方有条件地调用断点。

【讨论】:

你也可以右键断点,点击编辑断点,在那里添加条件。

以上是关于通过代码设置 Xcode 断点? (如 pause() 函数)的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 11 断点仅在 HEX 代码上停止

Xcode 异常断点总是在属性上暂停

WWDC session 412 Xcode调试技术-骚操作小结 (仅iOS)

SwiftUI项目如何在Xcode预览(Preview)中开启调试支持

SwiftUI项目如何在Xcode预览(Preview)中开启调试支持

WWDC session 412 Xcode调试技术-骚操作小结 (仅iOS)