17

Is it possible to use GDB or LLDB from the Terminal command-line under Mac OS X to debug apps running on the iOS Simulator? (e.g. not from within Xcode's GUI or console, but using an external command-line or process). If so, how?

hotpaw2
  • 70,107
  • 14
  • 90
  • 153

1 Answers1

31

You'll need to have the app already in the simulator's Springboard; you can't launch the app in the simulator from Xcode and then expect to be able to have a command line instance of gdb attach to it.

So:

  1. Run the iOS Simulator, having already gotten your app into it.
  2. In a terminal window:
    % gdb
    ...
    (gdb) attach --waitfor 'Name Of Your App'
  1. Launch your app from the simulator Springboard.
  2. gdb should attach to the process before main() is executed. So you can set some breakpoints, or whatever. Then:
    (gdb) continue

The procedure for lldb is similar:

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

I am not sure why you'd want or need to do this, but as an old command line gdb (and dbx) guy, I can appreciate it. :-)

Heath Borders
  • 30,998
  • 16
  • 147
  • 256
Mark Granoff
  • 16,878
  • 2
  • 59
  • 61