我不知道我的设置有什么变化,但过去是因为当我的(Swift)代码崩溃时,调试器会显示有问题的源代码行。
现在无论出现什么问题,调试器只会突出显示定义了UIApplicationMain的AppDelegate.swift中的行。
我可以通过在代码中或多或少地放置打印语句来说明问题出现,但是......如果调试器从未传达任何信息而且我只需要做所有事情"旧学校"使用print语句 - 特别是如果有异步进程,其中print语句不是一个可靠的指示崩溃发生位置的指示器吗?
我已经看过很多年前谈到进入"首选项 - >的线程。行为"并在代码意外退出时修改显示的内容。但是(a)我过去从不需要这个,更重要的是(b)这似乎没有任何效果,即调试器仍然只是放弃了主。
是否有一种很好的方法可以恢复旧的,特定的调试行为?
我目前正在运行Xcode 7.0,但这种行为发生在7-GM种子上,甚至现在我回去尝试7 beta 5和beta 6,这曾经工作过。
答案 0 :(得分:4)
转到Debug Navigator(cmd-7),单击底部的加号按钮,然后选择Add Exception Breakpoint。这将在发生问题的实际行中中断。
在异常断点详细信息编辑器中创建调试器命令操作,并在文本框中输入po $arg1
。这将在调试控制台中显示错误消息。
答案 1 :(得分:0)
之前的答案是正确的,但今天这个答案更为重要:
在带有Swift 4的Xcode 9.2上,执行以下操作:
就是这样! :)