views:

3170

answers:

2

Using Xcode 3.1 on OSX 10.5; is it possible to attach (the debugger) to a running remote process?

I know that it's possible to start and debug a remote process (as explained here), but it would be great if I could find a way to attach to an already running remote process...

edit to add: Thanks. I've submitted a bug report to Apple. Will update this question if/when I hear back from them.

+3  A: 

There is no nice gui for it in XCode but you can do it this way:

  1. start a second instance of the program from XCode with remote debugging,
  2. use the GDB attach command from the console

Step by step instructions:

  1. Follow Apple's instructions to set up remote debuging:

  2. Find out the process-id of the running instance of your program on the remote box:

    ssh "remotemachine" 'ps -x -w -w' | grep "AppName"

    (you can also use ARD and ActivityMonitor)

  3. Put a breakpoint to your app main, and start a second instance from the Debugger (on the remote box)

  4. In the GDB console (Run/Console menu) enter:

    attach process-id

  5. Now you have you XCode attached to the running process. You can now use the graphical debugger.

(In early XCode, there was no GUI for attaching to local processes, so this trick/hack was the solution...)

mfazekas
A: 

Can you please tell me if I can use XCode to debug a native (c++) application running on an ARM emulator?

I am able to connect to the process (running on the ARM emulator) using a special built gdb (cross compile with ARM) run at my terminal of my development machine.

But my question is, how, if possible, to setup XCode so that it can use this special built gdb to debug inside XCode? The advantage of doing that is I can setup source-level debugging in XCode.

Thank you for any pointers.

yinglcs
I would recommend you submit a question regarding this issue, that way it'll get more coverage :)
fuad