我的情况是,每次运行我的应用程序时,LLDB RPC服务器总是崩溃,即使我清理了构建文件夹并完全删除并重新安装了Xcode(版本8.3.3(8E3004b))。
事实证明,显然LLDB对我设置的断点有异议,只需将此断点移动一行即可解决问题。
~/Library/Preferences/com.apple.dt.Xcode.plist
~/Library/Caches/com.apple.dt.Xcode
已解决,虽然不知道原因,但值得一试。
记得备份这些文件,以防意外情况发生时进行恢复。
确保你没有在发布模式下运行应用程序,如果是在发布模式下,请将其更改为调试模式。
我曾经遇到了同样的问题,解决方法是删除一些断点。不确定为什么会出现这种情况,但至少你可以删除断点并使用一些 NSLog()
或 print()
(如果你在使用 Swift),以便进行调试。祝好运!
显然,这有很多不同的原因,但对我来说,我正在使用DispatchGroup来跟踪多个异步任务。
我忘记在其中一个异步任务之前调用dispatchGroup.enter()
(但仍然在完成时调用了dispatchGroup.leave()
)。
添加这个后,问题就解决了。
我找到了解决这个问题的方法。我不知道这是否正确,但是这个解决方案对我有效。实际上,我将两个设备连接到我的Mac mini上,在一个设备上运行应用程序并在控制台中获得上述错误。然后我移除了一个设备并尝试了一下,这次我没有在控制台中收到任何错误,它正常工作了。我想你们可能不会相信,我用两个设备和一个设备尝试了近3次,只有一个设备可以正常工作。
这个错误出现的原因有很多,其中主要的原因是当你在项目中后期添加了一个手表应用程序时,Xcode会向方案中添加一个额外的构建目标。点击“运行/停止按钮”右侧的方案部分,然后点击编辑方案,在第一个构建部分中点击“构建”,你会看到两个目标,其中一个有两个子目标,包括手表应用程序和手表扩展程序,另一个没有子目标,它是一个手表应用程序目标。
解决方法很简单,删除没有子目标的手表应用程序目标,然后再次运行应用程序即可。
我在2021年1月的macOS Catalina中使用Xcode 12.1.1 (12A7605b)
遇到了问题,这个问题与一个Swift项目有关。
我尝试过清理、删除派生数据、重启Mac、在不同的模拟器和真实设备上运行 - 都没有运气。
其他人建议移除断点,但对我来说,这个断点是必要的调试工具(我猜我可以想出一种不同的方式进行调试,在不同的断点位置或者通过打印语句,但这很令人沮丧)。
由于错误信息提示,我向Apple提交了一个错误报告 - 我敦促其他人也这样做,以增加Apple解决问题的机会。
同时,我使用以下解决方案 - 将您希望设置断点的代码包装在DispatchQueue.main.async
中:
DispatchQueue.main.async { [self] in
print("Put the breakpoint on this line")
}
[self]
,因为这只是调试代码,但在大多数情况下,这些异步调用需要 [weak self]
来避免保留环和内存泄漏)
~/.lldbinit
中。在~/.lldbinit
中删除command script import
行后,LLDB RPC服务器继续正常工作。 - Hamid Rouhani