【问题标题】:Why does the LLDB Debugger constantly fail to attach?为什么 LLDB 调试器总是无法附加?
【发布时间】:2013-02-16 22:20:46
【问题描述】:

这个问题我看过很多答案:

错误:无法附加到进程 ID

作为 switch to GDB。但没有人说明为什么会发生这种情况的原因?

附加在 GDB 调试器中工作正常,但默认和推荐的项目设置是 LLDB。

谁能解释一下为什么 LLDB 会失败?这是一个常见的错误还是我做错了什么?

另外,如何在创建新项目时将 GDB 设置为我的默认调试器而不手动更改它?

系统信息:

OS: Lion
RAM: 5GB
XCode: Version 4.6 (4H127)
Device: Mac mini

我的本​​地主机设置:

【问题讨论】:

  • 这对我来说是同样的问题,但是当我尝试为 xcode 安装一些框架​​(第三方)时它会出现问题。它需要生成一些特定的环境变量或一些特定的系统文件,并且在生成该文件或安装后,我的 xcode 开始显示相同的错误,并且每次都必须将调试器更改为 GDB,以便每个项目编译和运行它:(。它接缝没有其他方法,然后从头开始重新安装 OS X,因为其他一切都由我尝试。所有包括 Xcode 重新安装。我不认为除了重新安装 OS X 之外。
  • 你使用的是什么版本的 Xcode?​​span>
  • 在极少数情况下,这实际上发生在我身上,重新启动可以 100% 修复它。你试过吗?
  • @0x7fffffff :有时会重新启动修复。有时不会
  • 您能否检查一下localhost 是否在您的/etc/hosts 文件中定义。从命令行grep localhost /etc/hosts

标签: ios xcode debugging ios-simulator lldb


【解决方案1】:

确保在您的/etc/hosts 文件中将localhost 映射到127.0.0.1

$ grep 本地主机 /etc/hosts

如果grep 没有显示127.0.0.1,则添加它:

$须藤-i # echo "127.0.0.1 localhost" >> /etc/hosts

^ '#' 是 root 的命令提示符;不要键入它,否则您将注释掉该语句并且什么都不会发生

注意使用>> 而不是>! (最好使用vimate 或其他任何方式对其进行编辑)。

我的/etc/hosts 文件显示(忽略 cmets):

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

【讨论】:

  • #localhost用于配置环回接口::1 localhost fe80::1%lo0 localhost
  • 你能解释一下吗?这有什么区别?
  • 我一定会试一试,你能验证我之前评论的回复吗。这就是我得到的
  • @LithuT.V 这是网络问题; lldb 不知道如何使用 IPv4 连接到 iPhone 模拟器。如果您没有 127.0.0.1 localhost 映射(由grep 验证),那么您需要使用此答案中的详细信息修复您的/etc/hosts 文件。
  • @LithuT.V 不要得意忘形;这并不意味着您需要 Internet 连接才能进行调试,因为 127.0.0.1 是 loopback interface(详情请参见 Google),而 lldb(和 gdb)使用TCP 的进程间通信机制。
【解决方案2】:

Apple 喜欢向前迈进。因此,将 gdb 设置为所有新项目的调试器不是一种选择。

有时,您必须重置iOS Simulator 才能清理调试器。

【讨论】:

  • 感谢您的回复。请注意,我问为什么不这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 2018-08-15
  • 2018-09-05
相关资源
最近更新 更多