2012-04-11 12 views
14

Ist es möglich, GDB oder LLDB aus der Terminal-Befehlszeile unter Mac OS X zu verwenden, um Apps zu debuggen, die auf dem iOS Simulator ausgeführt werden? (z. B. nicht über die Xcode-GUI oder -Konsole, sondern über eine externe Befehlszeile oder einen externen Prozess). Wenn das so ist, wie?Terminal-Befehlszeilen-Debuggen von iOS Simulator-Apps?

Antwort

22

Sie müssen die App bereits im Springboard des Simulators haben; Sie können die App nicht im Simulator von Xcode aus starten und dann erwarten, dass eine Befehlszeileninstanz von gdb angehängt werden kann.

So:

  1. Führen Sie den iOS Simulator, nachdem er bereits die App hinein bekommen.
  2. In einem Terminal-Fenster:
 
    % gdb 
    ... 
    (gdb) attach --waitfor 'Name Of Your App' 
  1. Starten Sie Ihre App aus dem Springboard-Simulator.
  2. gdb sollte an den Prozess vormain() wird ausgeführt werden. Sie können also einige Haltepunkte setzen oder was auch immer. Dann:
 
    (gdb) continue 

Das Verfahren für lldb ist ähnlich:

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

Ich bin nicht sicher, warum Sie wollen würden oder müssen dies tun, aber als alte gdb Kommandozeile (und dbx) Mann, ich kann es schätzen. :-)

+0

So raffiniert. Hut ab vor dir, Sir! –

+0

Verwenden Sie 'xcrun simctl', um die App auf dem Simulator zu installieren und starten Sie sie dann. – tboyce12