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个回答

62

我的情况是,每次运行我的应用程序时,LLDB RPC服务器总是崩溃,即使我清理了构建文件夹并完全删除并重新安装了Xcode(版本8.3.3(8E3004b))。

事实证明,显然LLDB对我设置的断点有异议,只需将此断点移动一行即可解决问题。


3
我遇到过完全相同的问题。我收到了“LLDB RPC服务器崩溃”的通知。不确定是哪个断点导致了这个错误,但我把所有的断点都关掉了。 - klmitchell2
1
实际上,移动断点对崩溃没有任何影响。它仍然会崩溃。 - Mohammed Hasan
3
尽管我移除了断点后程序不再崩溃,但我仍然想知道原因。我需要那个断点,移除它只是让我回到了最初的状态。将其移至另一行似乎也不起作用。 - Brian Sachetta
我最近升级到了Xcode 11.0,开始在断点处遇到了崩溃的问题... - Rodrigo Fava
1
我也是。我在 XCode 11.0 中也遇到了同样的问题。我尝试进行了清理构建,并删除了派生数据,但仍然没有解决问题。然后我只删除了一些断点,就顺利解决了。真的很奇怪。 - Shivam Pokhriyal
显示剩余4条评论

9
在我的情况下:我最近升级到Xcode版本9.3(9E145),当Xcode执行到断点行时,我输入“po XXX”命令,它会显示相同的消息。我尝试删除以下文件。
~/Library/Preferences/com.apple.dt.Xcode.plist
~/Library/Caches/com.apple.dt.Xcode

已解决,虽然不知道原因,但值得一试。

记得备份这些文件,以防意外情况发生时进行恢复。


2
请记住,删除~/Library/Preferences/com.apple.dt.Xcode.plist将会从Xcode中删除您的偏好设置,例如编辑器颜色方案。 - AlexeyIS
删除了这些文件,但没有帮助。这些文件会在Xcode启动时重新创建。 - Vyachaslav Gerchicov

8

确保你没有在发布模式下运行应用程序,如果是在发布模式下,请将其更改为调试模式。


26
对我来说这并没有奏效,我使用的是 Xcode 11.3 并且已经设置了调试模式,但仍然崩溃。 - Kakashi
4
为什么它被接受为答案? - Vyachaslav Gerchicov

7

我曾经遇到了同样的问题,解决方法是删除一些断点。不确定为什么会出现这种情况,但至少你可以删除断点并使用一些 NSLog()print()(如果你在使用 Swift),以便进行调试。祝好运!


4

显然,这有很多不同的原因,但对我来说,我正在使用DispatchGroup来跟踪多个异步任务。

我忘记在其中一个异步任务之前调用dispatchGroup.enter()(但仍然在完成时调用了dispatchGroup.leave())。

添加这个后,问题就解决了。


1
如果工作区有很多断点,那么就会发生这种情况。因此,请尝试删除所有断点并查看魔术效果。

1
对我来说,只需重新启动模拟器即可。

0

我找到了解决这个问题的方法。我不知道这是否正确,但是这个解决方案对我有效。实际上,我将两个设备连接到我的Mac mini上,在一个设备上运行应用程序并在控制台中获得上述错误。然后我移除了一个设备并尝试了一下,这次我没有在控制台中收到任何错误,它正常工作了。我想你们可能不会相信,我用两个设备和一个设备尝试了近3次,只有一个设备可以正常工作。


这对我有用,我认为你被踩是不公平的。 - Jon_the_developer
对我不起作用 - Vyachaslav Gerchicov

0

这个错误出现的原因有很多,其中主要的原因是当你在项目中后期添加了一个手表应用程序时,Xcode会向方案中添加一个额外的构建目标。点击“运行/停止按钮”右侧的方案部分,然后点击编辑方案,在第一个构建部分中点击“构建”,你会看到两个目标,其中一个有两个子目标,包括手表应用程序和手表扩展程序,另一个没有子目标,它是一个手表应用程序目标。

解决方法很简单,删除没有子目标的手表应用程序目标,然后再次运行应用程序即可。


0

我在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]来避免保留环和内存泄漏)

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