【问题标题】:Terminal command-line debug of iOS Simulator apps?iOS模拟器应用程序的终端命令行调试?
【发布时间】:2012-04-24 03:00:44
【问题描述】:

是否可以从 Mac OS X 下的终端命令行使用 GDB 或 LLDB 来调试在 iOS 模拟器上运行的应用程序? (例如,不是来自 Xcode 的 GUI 或控制台,而是使用外部命令行或进程)。如果有,怎么做?

【问题讨论】:

    标签: ios xcode macos debugging lldb


    【解决方案1】:

    您需要已经在模拟器的 Springboard 中安装了该应用;你不能从 Xcode 在模拟器中启动应用程序,然后期望能够将 gdb 的命令行实例附加到它。

    所以:

    1. 运行 iOS 模拟器,已将您的应用放入其中。
    2. 在终端窗口中:
    %gdb ... (gdb) attach --waitfor '您的应用程序的名称'
    1. 从模拟器 Springboard 启动您的应用。
    2. gdb 应该附加到进程之前 main() 被执行。所以你可以设置一些断点,或者其他什么。然后:
    (gdb) 继续

    lldb 的过程类似:

    %lldb (lldb) process attach -n 'Name Of Your App' --waitfor (lldb) 继续

    我不确定您为什么想要或需要这样做,但作为一个老命令行 gdb(和 dbx)的人,我可以理解它。 :-)

    【讨论】:

    • 太漂亮了。向您致敬,先生!
    • 使用xcrun simctl 命令在模拟器上安装应用程序,然后启动它。
    • 回答您为什么要这样做的问题:在我的情况下,它是调查 iOS CI 问题,在本地复制控制台驱动的 CI 过程并在特定兴趣点停止应用程序。
    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 2012-12-11
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2016-09-27
    • 2010-09-29
    • 2011-02-04
    相关资源
    最近更新 更多