【问题标题】:Remote debugging using lldb/Xcode使用 lldb/Xcode 进行远程调试
【发布时间】:2016-02-06 17:57:09
【问题描述】:

我有 2 个工作站,一个用于开发,另一个用于测试。我希望能够在测试站上运行和调试在发布模式下构建的目标(代码被剥离)。

由于出于安全原因,可能不会将代码复制到测试站,因此我已尝试按照以下链接中所述进行远程调试 - http://lldb.llvm.org/remote.html

由于调试的双方都运行 OS X,设置说明指定我的本地(开发)站应与“调试服务器”一起运行“lldb-server”,而远程(测试)端应运行“平台”。

不幸的是,我在 Xcode 包中找不到所有这些工具。我还尝试下载 lldb 源代码并自己创建这些可执行文件,但我仍然缺少 lldb-server 目标。

我希望我有一些关于如何从头到尾正确进行 lldb 远程调试的清晰而全面的指南。

【问题讨论】:

  • 很可能 lldb 在本地系统上找不到可执行文件的调试信息。 debugserver 不对调试信息做任何事情,这不是它的工作,因此 lldb 必须在本地查找调试信息才能进行符号调试。如果您有已构建的可执行文件的本地副本 - 出于性能原因,您无论如何都希望拥有它,因为这将加快调试速度 - 然后尝试在启动时将本地副本的路径传递给 lldb。
  • 您可以将它们添加到答案中,然后接受它作为解决方案,而不仅仅是编辑问题吗?这将使其他人更容易发现他们是否有同样的问题。
  • 如果你这样做了,请你写一些关于如何正确地从A到Z进行lldb远程调试的清晰而全面的指南?

标签: macos debugging remote-debugging lldb


【解决方案1】:

请为 Apple 提供反馈以更新其文档here

与此同时,我使用 hopperapp 和应用程序反汇编获得了更多里程。 http://hopperapp.com/ 有一个免费试用版 - 它有一个远程调试器可用。

【讨论】:

    【解决方案2】:
    1. 确保两台机器上都安装了 Xcode。 (不同版本都可以!)

    2. 在远程机器上(运行可执行文件):

      1. 启动要调试的应用程序
      2. 启动调试服务器,附加到您的应用程序,并侦听来自另一台 Mac 的连接: /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver development-mac.local:16000 --attach="Photo Booth"
    3. 在开发机器上:

      1. 键入lldb 启动lldb
      2. 连接到调试服务器: process connect connect://test-mac.local:16000

    在测试机器上,您现在应该会看到消息Waiting for debugger instructions for process 0。片刻之后,(lldb) 提示应该会出现在您的开发机器上,您可以正常开始调试了。

    很遗憾,我不确定如何从 Xcode 进行连接。

    【讨论】:

    • 它是否从远程下载二进制文件?我正在尝试调试应用程序,但它卡在connect 命令。在活动监视器中,我可以看到 lldb 正在下载一些东西,但即使一个小时后,也没有任何反应。
    • @VivekKumar 我通过在process connect ... 命令之前发出命令platform select remote-macosx 解决了这个问题。 @JakobEgger 请更新您的答案。
    • 同时避免使用--attach="MyApp",因为这也会引起鬼婆。删除该选项并将其替换为可执行文件的路径。所以基本上你需要从命令启动可执行文件或从客户端远程启动它。在这种情况下,您需要仅使用 host:port 选项运行 debugserver 命令并发出run 命令。有关详细信息,请参阅此页面:lldb.llvm.org/use/remote.html
    猜你喜欢
    • 2016-07-26
    • 2013-05-16
    • 2014-01-22
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多