如果我的iOS程序在调试器中运行,我正在寻找一种方法来使XCode调试器以编程方式从Swift代码中断.这与System.Diagnostics.Debugger.Break()在Visual Studio环境中的工作方式类似.这可能吗?关键是任何打到某个特定代码段的开发人员都要破解,但不会产生导致代码执行永久停止的致命错误.
编辑:这与要求"启用"断点的用户略有不同(尽管该问题中提供的答案确实是我正在寻找的).我还在寻找可以在没有互操作,桥接标题等的情况下在Swift中完成的事情.
对于Swift,raise(SIGINT)
适合我.
我有这个功能:
func fail(desc: String) { #if DEBUG print("assertFail:\(desc)") raise(SIGINT) #endif }
对于DEBUG宏设置,请参见此处:在没有预处理器宏的情况下,有没有办法在Xcode项目中的项目级别定义实用的方案特定标志
把asm("svc 0")
是否通过Xcode中调试你的代码将停止运行的应用程序.请参阅:https://stackoverflow.com/a/34078247/215400