iOS模拟器应用程序的终端命令行调试?

时间:2012-04-11 18:56:01

标签: ios xcode macos debugging lldb

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

1 个答案:

答案 0 :(得分:28)

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

所以:

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

      lldb的程序类似:

          % lldb
          (lldb) process attach -n 'Name Of Your App' --waitfor
          <launch your app in the simulator>
          (lldb) continue
      

      我不确定你为什么要或不需要这样做,但作为一个旧命令行gdb(和dbx)的家伙,我很感激。 : - )