Remote debugging using lldb/Xcode

Zohar81 picture Zohar81 · Nov 5, 2015 · Viewed 12.8k times · Source

I've got 2 stations, one for development and another one for testing. I'd like to be able to run and debug targets that were built under release mode (the code is stripped) on the testing station.

Since the code may not be copied to the testing station for security reasons, I've tried remote debugging as described in the following link - http://lldb.llvm.org/remote.html.

Since both sides of the debugging runs OS X, the settings instructions specify that my local (development) station should run 'lldb-server' along with 'debugserver', and remote (testing) side should run 'platform'.

Unfortunately, I couldn't find all those tools inside the Xcode bundle. I also tried to download lldb source code and create those executable by myself, but I'm still missing the lldb-server target.

I wish I had some clear and comprehensive guide about how to do lldb remote debugging properly from A to Z.

Answer

Jakob Egger picture Jakob Egger · Mar 28, 2017
  1. Make sure that Xcode is installed on both machines. (Different versions are OK!)

  2. On the remote machine (running the executable):

    1. Start the app you want to debug
    2. Start debugserver, attach to your app, and listen for connections from the other Mac: /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/debugserver development-mac.local:16000 --attach="Photo Booth"
  3. On the development machine:

    1. Start lldb by typing lldb
    2. Connect to the debug server: process connect connect://test-mac.local:16000

On the test machine, you should now see the message Waiting for debugger instructions for process 0. After a short while, the (lldb) prompt should appear on your development machine, and you can start debugging as normal.

Unfortunatly, I'm not sure how to connect from Xcode.