Re: Xcode interferes with signal handler (was: Sending SIGUSR1 to a process)
Re: Xcode interferes with signal handler (was: Sending SIGUSR1 to a process)
- Subject: Re: Xcode interferes with signal handler (was: Sending SIGUSR1 to a process)
- From: Alex Zavatone via Cocoa-dev <email@hidden>
- Date: Wed, 31 Jan 2024 08:54:40 -0600
That’s a great tip Jens. Gabriel, if you build your app with different
dev/release schemes, you could detect your build scheme and then execute the
desired process based on if you’re able to debug or not.
Just expose the environment variable for $CONFIGURATION in an info.plist file,
read it into a variable and then manage your response based on what the value
is. If you want details on that, contact me off list and I’ll show you.
Reference:
https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html
Hopefully, Jens’s tip will get you what you need!
Best,
Alex Zavatone
> On Jan 31, 2024, at 12:20 AM, Jens Miltner via Cocoa-dev
> <email@hidden> wrote:
>
> Xcode intercepts signals in the process being debugged (for good reason).
> You can ignore specific signals in Xcode (i.e. pass them through to the
> process being debugged) by breaking into the debugger, then enter in the
> Xcode console part (example for SIGUSR1):
>
> process handle SIGUSR1 -s false
> process handle SIGUSR1 -p true
>
> HTH,
> -jens
>
>
>> Von: Gabriel Zachmann <email@hidden>
>> Betreff: Xcode interferes with signal handler (was: Sending SIGUSR1 to a
>> process)
>> Datum: 30. Januar 2024 um 20:31:45 MEZ
>> An: "email@hidden" <email@hidden>
>>
>>
>> I am setting up a signal handler in my app like this:
>>
>> void *e = signal( SIGUSR1, signal_handler );
>> if ( e == SIG_ERR )
>> ...
>>
>> It works (i can 'kill -30 <pid>'), BUT ONLY, if I run my app outside of
>> Xcode.
>>
>> When I launch it from Xcode, and I send a SIGUSR1 to my app, it always
>> breaks at mach_msg2_trap.
>> Obviously, this is a bit tedious for developing, since now I always have to
>> go through Product / Archive / Distribute ...
>>
>> Any ideas, how I can prevent this from happening?
>>
>> And it's unclear to me what's going on. Can Xcode really prevent signal(3)
>> from installing a signal handler?
>> Or does a kill on the command line deliver the signal to several processes,
>> one of them, maybe, an ancillary process from Xcode?
>>
>>
>> Best regards, Gabriel
>>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden