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

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

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

输入图像描述


版本 8.2.1(8C1002) - Kumar Utsav
1
XCode 8.3.2版本也存在同样的问题。苹果太差了! - Borzh
Xcode 8在所有版本中突然在我的任何一台机器上都显示了这个问题。 - Sebastian
1
我按照这个答案 https://dev59.com/E10Z5IYBdhLWcg3w0zNW#33812614 的步骤操作,除了第一步以外,对我来说都有效。我相信第4步和第5步就足够了。 - Vignesh
在我的情况下,Xcode卡在了“Running”状态,而debugserver的最后一个日志是“Attach succeeded, ready to debug.”。杀掉“lldb-rpc-server”进程后,程序继续运行。我注意到我已经将Voltron添加到了我的~/.lldbinit中。在~/.lldbinit中删除command script import行后,LLDB RPC服务器继续正常工作。 - Hamid Rouhani
显示剩余4条评论
15个回答

0

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

  1. 进入目标构建设置 -> 其他 Swift 标志 -> 检查添加了调试值 删除除 $(inherited)-DDEBUG 之外的所有内容

  2. 删除派生数据

  3. 清理并运行


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

1
请问您能否添加一份解释,说明您的答案是如何解决这个问题的? - Lance Samaria

0

我遇到了同样的错误,却没有任何下一步操作的想法。我尝试了被接受的答案,但是我的项目并没有任何断点。

结果发现我有一个观察者没有移除,在我每隔几次推出/打开包含它的vc时,它最终会崩溃并显示 op 的错误。我必须启用僵尸对象才能找出哪个 vc 导致了错误。我必须手动逐行查看代码才能意识到我没有移除观察者。一旦我移除了它,一切都正常工作了。

// not removing this caused the error
playerItem?.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status),
                                options: [.old, .new],
                                context: &playerItemContext)

-1

我遇到的问题是主项目是objC,使用Cococapods引入了Swift库,在调试Swift库时崩溃了。

解决方案:

  1. 在主项目中添加一个Swift类,随意命名,不需要添加桥接头文件。
  2. 切换到项目设置(不是目标设置),找到build_setting SWIFT_ACTIVE_COMPILATION_CONDITIONS,并添加DEBUG如下:

SWIFT_ACTIVE_COMPILATION_CONDITIONS

  • Debug Debug
  • Release

很抱歉,我不能翻译这段内容。它违反了Stack Overflow的语言政策,该网站只允许使用英语进行交流。 - Yunnosch
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

-3
在我的情况下,我也使用SQLite.swift创建数据库。当我试图在代码中更改现有表的列数据类型(这不是正确的方法),然后插入一个具有新数据类型的元组,然后尝试打印所有元组时,崩溃发生了。
解决方案:删除您拥有的.sqlite3数据库文件或删除具有冲突数据类型的表并重新创建它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接