现象
在项目中打了全局异常断点,在app运行的时候直接停在main函数中,直接无视断点继续运行app还可以继续运行。这是什么👻?
我们知道当程序crash的时候,全局断点一般情况下都可以捕获到crash的地方。如果捕获不到则会跳到main函数中,程序直接crash掉,此时控制台中会打印出对应的错误信息
解决办法
方法1:在stackoverflow中说可能是字体的问题。而从崩溃的堆栈信息中也发现最好崩溃在了语言的地方。
上图icon在苹果的官方文档中也标识为languages。(图标意义参考这里)
现在看看我们还从堆栈信息中还能获得什么有用的信息?
检查后发现了一个.ttf的东西。
这恰恰是iOS中自定义字体的格式。恍然大悟这个字体格式的文件在工程中已经被删除了。自作孽....
把之前自定义字体使用到的地方全部修改掉,重新运行,一切OK。瞬间感觉轻松了许多。
方法2: 右键点击 All Exceptions => Edit Brackpoint… => Exception 选项选择 Objective-C, 这种方法虽然会暂时回避掉中断的问题, 但是如果你的项目中有用到 C++ 代码, 也就自然没法自动在 C++ 代码中中断了(All Exception).
参考地址:stackoverflow