Question

I have a process that spawns a helper process. Sometimes I need to debug start-up failures in the second process.

On Windows, I would use Image File Execution Options, or ntsd -o. However, I have no idea how to do this with gdb on OS X.

Was it helpful?

Solution

Use gdb --wait. For example, try

gdb --wait TextEdit

from the command line, then launch TextEdit.

OTHER TIPS

I don't think that you can have gdb launch in the same manner. Instead, run your parent process from within gdb or attach to the running process before it forks the helper off. There is a setting called follow-fork-mode that controls which process the debugger follows. Take a look at the GDB Manual for a nice description.

If you're using launchd to spawn processes, then there's a WaitForDebugger boolean key which goes in the job's plist file. If it's yes, then launchd waits (surprisingly!) for the debugger before exec()ing the job.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top