17

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

4

1 回答 1

30

您需要已经在模拟器的 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)的人,我可以理解它。:-)

于 2012-04-11T19:18:10.050 回答