On 2013-10-15 13:12, Bill Cheeseman wrote:
Is there any way to test whether an application is running in Xcode or
some other compiler/debugger, and not as a free-standing application?
And then to get the name of the compiler/debugger?
I'm currently testing #ifdef DEBUG and simply assuming that Xcode is
the only compiler/debugger available on the Mac. But I understand that
isn't true.
#ifdef DEBUG is a compile time switch. You can run apps compiled with
DEBUG defined outside the debugger, too.
If you really need to know if you are running with a debugger attached,
the following might work (I did not test it!):
- fork into a new process, IPC to parent in place.
- regularly try:
int err = ptrace(PT_ATTACH, <pid>, (caddr_t)0, 0);
if (!err) ptrace(PT_CONTINUE, <pid>, (caddr_t)1, 0)
if (err == EBUSY) {
// Use IPC to inform parent: A debugger is attached.
}
I don't think there is a way to get the name of the process that is
attached as debugger.
HTH,
Daniel
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to arch...@mail-archive.com