Re: Debugging a lanuchd daemon
Re: Debugging a lanuchd daemon
- Subject: Re: Debugging a lanuchd daemon
- From: Dustin Norman <email@hidden>
- Date: Tue, 30 Oct 2007 16:14:50 -0400
Steve,
Yeah, I wasn't sure if that was new for Leopard or not. At any rate,
I found a workaround for my problem that should help you too. If you
put a call to pause() at the beginning of your program, it will wait
for a signal. Attaching with Xcode will send such a signal and it
unblocks the process. In my particular case, I added support for a
command-line switch that would result in pause() being called and then
just added the switch to the ProgramArguments section of the plist file.
Dustin
On Oct 30, 2007, at 3:52 PM, Steve Sisak wrote:
Hi Dustin,
Thanks for the hint, WaitForDebugger does not appear to be in the
man page (I also tried Debug, which is present). For reference, I'm
using Xcode 2.4.1 on Mac OS X 10.4.10.
I can launch manually and things are working -- trying to figure out
how to attach from Xcode.
Thanks,
-Steve
At 10:54 AM -0400 10/30/07, Dustin Norman wrote:
Steve,
You can add a boolean value to your launchd plist file called
WaitForDebugger that should pause the process before main has been
called. See man launchd.plist for more information.
One word of caution, if you are using Xcode 3.0 this may not work.
At least I haven't been able to get it to work. Xcode attaches but
there are errors and it's not possible to debug. Attaching with
gdb from the command-line does work but it obviously isn't the best
debugging environment.
I have not tried this on Tiger so I don't know if this problem
exists with Xcode 2.4.
HTH,
Dustin
On Oct 30, 2007, at 10:39 AM, Steve Sisak wrote:
I'm in the process of converting a StartupItem (which I could just
run to debug) to a launch-on-demand daemon that will be
automatically launched when a Unix-domain socket it registers is
accessed.
I'd like to debug the launch code when it's launched by launchctl,
but obviously can't attach to the process because it isn't running
yet.
Is there a way to get Xcode to debug a process upon launch or
other practical techinique to use here?
(I can always put the process in an infinite loop and attach to it)
Also, the daemon will normally be run as root (although I'm pretty
sure I can test it in user space for the time being).
How would one debug a priviledged daemon with Xcode? (2-machine
debugging?)
Suggestions and best practice welcome.
Thanks,
-Steve
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden