You can use the lsof
command to figure out where a particular file descriptor has been redirected:
lsof -a -p <your pid> -d 0,1,2
When a background process is launched usually the child proccess is attached to the same standard streams as the parent process. For normal Cocoa applications by default you should be able to see that output in Console.app under 'all messages' or 'console messages'.
Before Mountain Lion you could also view the output of launchd services there, but I believe since then launchd redirects stdout and stderr to /dev/null.
This means I can't easily attach to the background process with XCode or run it stand-alone
If you can run the main application from Xcode you should be able to set the debugger to attach to child processes it launches.
The Xcode debugger can also be told to wait for a particular process to launch and to attach to it.