如果我的iOS程序在调试器中运行,我正在寻找一种方法来使XCode调试器以编程方式从Swift代码中断.这与System.Diagnostics.Debugger.Break()在Visual Studio环境中的工作方式类似.这可能吗?关键是任何打到某个特定代码段的开发人员都要破解,但不会产生导致代码执行永久停止的致命错误.
编辑:这与要求"启用"断点的用户略有不同(尽管该问题中提供的答案确实是我正在寻找的).我还在寻找可以在没有互操作,桥接标题等的情况下在Swift中完成的事情.
在我自己开发的断言宏中,我一直在iOS设备上使用asm("陷阱")(或在iOS模拟器上使用asm("int3")来打破调试器.但是,在64位版本的设备中,我得到了陷阱指令的"无法识别的指令助记符".arm64有同等效力吗?
(像__builtin_trap()或raise(SIGINT)这样的替代品可以工作,但有一些我不喜欢的行为;前者不会让你继续经过休息,而后者是一个功能所以你总是在下面一步当你休息时你需要在堆栈中.)