Xcode不会在这个断点处暂停,因为它还没有解决

问题描述 投票:0回答:11

更新到 Xcode 13.2.1 后不久,我开始看到一些奇怪的断点行为。当我运行一个应用程序(在模拟器中)时,我的一些断点改变了它们的外观并变成了蓝色虚线轮廓。虽然代码已经编译、加载和执行,但 Xcode 不会在这些断点处停止执行。我通过添加一些

print
s在控制台中检查它。

当我将鼠标悬停在断点上时,Xcode 会显示一条消息:

Xcode不会在这个断点处暂停,因为还没有解决 解决它需要:

  • 断点处的行被编译。
  • 编译器生成未被剥离的调试信息(检查构建设置)。
  • 断点的库已加载。

所有琐碎的解决方案,如重新加载、重新应用断点都没有帮助。

有没有人看到这样的事情?有办法解决吗?

截图供参考:

ios swift xcode breakpoints xcode13.2
11个回答
3
投票

确保要添加断点的文件在目标成员资格中设置了正确的目标。

  1. 单击要在其中添加断点的 .m 文件。
  2. 选择文件检查器。
  3. 检查您是否为该文件选择了正确的目标(检查下图)。


2
投票

好的,所以在我的特殊情况下,重启笔记本电脑有帮助。所有断点现在都很好。但是知道问题的原因仍然很高兴。


2
投票

对我有用的是选择文件,使用-删除>移至废纸篓-删除它们,然后将文件从废纸篓拖回到项目中。

我编辑答案是因为我看到如果文件路径中有一些奇怪的字符(例如某些组名),断点也不会被解析。

希望对你有帮助


1
投票

在我的例子中,问题发生了,因为类没有添加到我试图构建的目标中。


1
投票

对于我的情况,代码路径从未被调用过,很可能被视为死代码。当不将文件添加到要调试的目标时,同样适用。

这可能是这种情况,或者调试器可能无法解决您的断点。在这种情况下,第一件事应该是cleaning derived data and any caches.

但是 无需重新克隆您的存储库,您只需从此 answer

中描述的位置删除断点配置

1
投票

在 Xcode 14 中,问题更加普遍和“一致”。我想出了一种总是失败的模式以及如何缓解它。 如果你有一个 final 类,那么在 private 方法上或内部设置的断点就会有这个问题。如果您从方法中删除private或从类中删除final,断点将得到正确解决。


0
投票

如果尝试了一切都没有效果,我建议如下:

  • 重新克隆你的仓库

这对我有用。


0
投票

我刚刚解决了这个问题,我的解决方案是重新创建文件.

注意:我最初尝试断点的那些是从另一个项目复制的。当我创建新文件时,即使它们的标识和类型看起来完全相同(目标成员、编码、路径),但出于某种原因断点又开始工作了。

注意 2:将代码复制并粘贴到新文件时(如果手动完成),迁移的断点 - 在旧文件中创建 - 将继续失败。只有在这个新文件中创建的才能正常工作。

希望有帮助。


0
投票

我的情况

致力于框架开发。框架被注入到示例应用程序中以用于开发/运行目的。框架内的断点将不起作用。

修复

只需删除示例应用程序中的 xcframework 并替换为框架。

理由

xcframework 是在应用程序外部预编译的,因此在构建项目时不会编译 lib,这就是断点不起作用的原因。


0
投票

转到 Build Settings,找到 Generate Debug Symbol 然后设置为 YES


-1
投票

我重启Xcode,就可以了~

© www.soinside.com 2019 - 2024. All rights reserved.