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

hot*_*aw2 16 debugging macos xcode ios lldb

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

Mar*_*off 29

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

所以:

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

程序lldb类似:

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

我不确定你为什么要或者需要这样做,但作为一个旧的命令行gdb(和dbx)的家伙,我可以欣赏它.:-)