什么是LLDB RPC服务器?它何时在Xcode中崩溃?为什么会崩溃?

时间:2017-04-26 13:22:29

标签: ios crash xcode8

我在调试器中收到一条消息:

  

LLDB RPC服务器崩溃了。崩溃日志位于〜/ Library / Logs / DiagnosticReports中,前缀为“lldb-rpc-server”。请提交错误并附上最新的崩溃日志。

enter image description here

15 个答案:

答案 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)

我已经找到了解决方案,这可能不是完美的解决方案,但是可以解决我的问题。

  1. 转到目标构建设置->其他Swift标志->检查添加的调试值 删除除 $(继承) -DDEBUG

    之外的所有内容
  2. 删除派生数据

  3. 清洁并运行

答案 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 - 清理并构建。

相关问题