Xcode(9.3)

时间:2018-04-09 11:00:06

标签: ios swift xcode

我的断点都没有被击中。

我尝试了以下内容:

  • 已删除派生数据目录
  • 清理构建文件夹
  • 删除了xcuserdata目录
  • 确保构建配置为DebugDebug executable为 打勾
  • 确保Generate debug symbols设置为Yes
  • Optimization level更改为No optimization

断点仍未被击中。

11 个答案:

答案 0 :(得分:12)

今天有这个问题--Swift项目中的断点在XCode 9.3中失败了(Objective-c很好)。

以下修正了它:

  

在Swift编译器 - 代码生成子菜单下更改优化级别。将其从-O移至-Onone

enter image description here

src:https://www.reddit.com/r/swift/comments/89nht7/breakpoints_not_working_after_updating_to_xcode_93/?st=jftp4n02&sh=49688058

答案 1 :(得分:4)

我在目标的构建设置中将Deployment Postprocessing设置为NO。将其设置为YES使我的断点再次起作用。

答案 2 :(得分:4)

现有答案中没有一个对我有用,所以我研究了正在发生的事情。通过在代码中强制设置一个断点(即asm(“ int3;”)指令),我可以看到未加载符号。自然,断点取决于加载的符号信息。

我的断点无法使用的代码在C ++框架中,并且该框架具有名为“ Strip链接的产品”的构建设置,对于发布和调试,默认设置为“是”建立。通过将调试版本设置为“否”(并进行完全重建),我的断点现在可以再次使用。

答案 3 :(得分:3)

尝试以下步骤

  1. 进行调试(Xcode的顶部栏)
  2. 调试工作流
  3. 始终显示反汇编-取消选中它

答案 4 :(得分:1)

我遇到了同样的问题,该解决方案对我有效:

  • 打开项目设置
  • 优化级别
  • 在“快速编译器-代码生成”部分下
  • 将“ 优化级别”设置为否优化[-Onone]

请参阅附加的屏幕截图 enter image description here

答案 5 :(得分:1)

仅构建活动体系结构设置为对我有帮助。

enter image description here

答案 6 :(得分:1)

就我而言,问题出在调试信息格式设置中。它被设置为DWARF而不是DWARF with dSYM File。将其重置为默认值即可解决问题。

答案 7 :(得分:0)

检查偏好设置>行为>正在运行>暂停选项。 导航器和调试器的显示必须已勾选。

答案 8 :(得分:0)

以前的解决方案都不适合我。我有一个问题,除了在xcode(9.4.1)工作区中的其他项目中的c ++项目上,所有断点都可以工作。对于该项目,我注意到只有一些断点在起作用。深入研究表明,使用私有方法创建的断点不起作用。

经过大量调查,我发现了自己的问题。在我的主项目中,我在头文件中声明了一些静态的Objective-C初始化程序。不能完全确定为什么,但是在将它们移到引用了它们的实现文件中之后,我断掉的断点又开始工作。希望这可以节省一些时间。

答案 9 :(得分:0)

enter image description here

XCode中的“选择断点”选项卡删除所有旧的断点。 然后添加新的断点。它为我工作。

答案 10 :(得分:0)

  1. 在我的目标的“构建设置”中将“部署后处理”设置为“是”。
  2. 调试->调试工作流程->始终显示反汇编->取消选中
  3. 退出Xcode,然后重新打开Xcode。

enter image description here