我在调试器中收到一条消息:
LLDB RPC服务器崩溃了。崩溃日志位于〜/ Library / Logs / DiagnosticReports中,前缀为“lldb-rpc-server”。请提交错误并附上最新的崩溃日志。
答案 0 :(得分:31)
在我的情况下,LLDB RPC服务器每次运行我的应用程序时都会一直崩溃,即使在清理构建文件夹并完全删除并重新安装Xcode(版本8.3.3(8E3004b))之后也会崩溃。
事实证明,LLDB显然反对我设定的断点,只是通过一条线移动这个断点解决了这个问题。
答案 1 :(得分:4)
确保您没有以 release 模式运行应用程序,如果它处于 release 模式,则将其更改为 debug 。
答案 2 :(得分:2)
在我的情况下:我最近更新到Xcode版本9.3(9E145)并且Xcode执行到带断点的行然后我输入" po XXX"推荐它会显示相同的信息。 我尝试删除以下文件
~/Library/Preferences/com.apple.dt.Xcode.plist
~/Library/Caches/com.apple.dt.Xcode
它解决了。 不知道为什么但值得尝试。
请记住备份这些文件,以便在发生任何意外情况时恢复。
答案 3 :(得分:1)
我遇到了同样的问题并在删除了一些断点后修复了它。不知道为什么会发生这种情况,但至少你可以删除断点并使用一些NSLog()
或print()
如果你在Swift中并在那些帮助下进行调试。祝你好运!
答案 4 :(得分:1)
显然有很多不同的原因,但是对我来说,我使用DispatchGroup来跟踪多个异步任务。
我忘了在其中一个异步任务之前调用dispatchGroup.enter()
(但在完成后仍然调用dispatchGroup.leave()
)。
在修复此问题后为我添加。
答案 5 :(得分:1)
对我来说只是重新启动模拟器就可以了。
答案 6 :(得分:0)
我找到了此问题的解决方案。我不知道这是正确的还是错误的,但是此解决方案对我有用。我所做的实际上是将两台设备连接到Mac mini,在一台设备上运行该应用程序,并在控制台中收到上述错误。然后,我删除了一个设备并进行了尝试,这次我的控制台没有出现任何错误,它的工作正常。我想你们不会相信这一点,我用两台设备尝试了近3次,而一台设备仅能在一台设备上工作
答案 7 :(得分:0)
发生此错误的原因有所不同,主要的原因是稍后在项目中添加监视应用程序时,Xcode会向方案添加额外的构建目标。单击“运行/停止按钮”右侧的方案部分,然后单击编辑方案,单击第一个的“构建”部分,您会看到2个目标,其中有2个子目标,其中包括watch app和watch extension,以及另一个没有子目标,它是监视应用程序目标。
解决方案很简单,删除没有子目标的watch app目标,然后再次运行该应用。
答案 8 :(得分:0)
对我来说,我在监视列表中有一个表情在说。在控制台中查看崩溃日志时,在报告的崩溃线程中有类似的东西被泄漏:
lldb_private::EvaluateExpressionOptions const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, lldb_private::ValueObject*) + 619
17 com.apple.LLDB.framework 0x0000000102855f18 lldb::SBFrame::**EvaluateExpression**(char const*, lldb::SBExpressionOptions const&) + 696
18 lldb-rpc-server 0x00000001025e72e9 rpc_server::_ZN4lldb7SBFrame18EvaluateExpressionEPKcRKNS_19SBExpressionOptionsE::HandleRPCCall(rpc_common::Connection&, rpc_common::RPCStream&, rpc_common::RPCStream&) + 169
19 lldb-rpc-server 0x00000001025f8ce1 rpc_common::Connection::PrivateHandleRPCPacket(rpc_common::RPCPacket&, rpc_common::RPCPacket&, bool&) + 1553
20 lldb-rpc-server 0x00000001025fc36d Packets::ProcessPackets() + 1005
21 lldb-rpc-server 0x00000001025fbe96 Packets::ReadThread() + 214
22 lldb-rpc-server 0x00000001025fbdb9 Packets::RunReadThread(void*) + 9
23 libsystem_pthread.dylib 0x00007fff6a586109 _pthread_start + 148
24 libsystem_pthread.dylib 0x00007fff6a581b8b thread_start + 15
答案 9 :(得分:0)
我遇到了同样的错误,对下一步的想法是零。我尝试了被接受的答案,而我的项目根本没有任何断点。
结果是我有一个观察者,我没有删除它,每隔几次我就会推/推包含它的vc,最终它会因op的错误而崩溃。我不得不enable zombies来找出导致该错误的vc。我不得不手动逐行手动检查代码以意识到我没有删除观察者。删除后,一切正常。
// not removing this caused the error
playerItem?.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status),
options: [.old, .new],
context: &playerItemContext)
答案 10 :(得分:0)
我已经找到了解决方案,这可能不是完美的解决方案,但是可以解决我的问题。
转到目标构建设置->其他Swift标志->检查添加的调试值 删除除 $(继承)和 -DDEBUG
之外的所有内容删除派生数据
清洁并运行
答案 11 :(得分:0)
如果工作区中有很多断点,那么它将发生,因此,请尝试删除所有断点并查看魔术。
答案 12 :(得分:0)
我于 2021 年 1 月在 macOS Catalina 上使用 Swift 项目在 Xcode 12.1.1 (12A7605b)
中遇到此问题。
我尝试过清理、删除派生数据、重新启动 mac、在不同的模拟器和真实设备上运行 - 没有运气。
其他人建议删除断点,但对我来说,调试需要这个断点(我想我可以弄清楚如何以不同的方式调试,使用不同的断点或打印语句,但这令人沮丧)。
>我按照错误消息的提示向 Apple 提交了错误报告 - 我敦促其他人也这样做,以增加 Apple 修复的机会。
与此同时,我使用了这种解决方法 - 将您想要断点的代码包装在 DispatchQueue.main.async
中:
DispatchQueue.main.async { [self] in
print("Put the breakpoint on this line")
}
(注意我们在这里使用 [self]
是因为它只是调试代码,但在大多数情况下,这些异步调用需要 [weak self]
以避免保留周期和内存泄漏)
答案 13 :(得分:-2)
就我而言。我也使用SQLite.swift来创建数据库。当我试图在代码中更改现有表的列数据类型(这不是以正确的方式执行)时发生崩溃,然后插入具有新数据类型的元组,然后尝试打印所有元组。< / p>
解决方案:删除您拥有的.sqlite3数据库文件或删除具有冲突数据类型的表并重新创建它们。
答案 14 :(得分:-6)
修复:关闭并重新打开Xcode - 清理并构建。