Mac OS でマルチスレッド アプリケーションを開発しています。次の問題に直面しています: xcode-cocoa アプリケーションでデバッグしようとすると (注: コンソール アプリケーションには同じ問題はありません)、スレッドは次の呼び出しでエラーを返します: kevent()、semaphore_wait() 、EINTR (kevent の場合) および KERN_ABORTED (semaphore_* の場合) を指定した semaphore_timedwait()。これはlldbの作業によるものだと思います。
問題は、このようなイベントを受け取った後にクラッシュするため、アプリケーションをデバッグできないことです。私がそれらの処理を行う場合(同じ機能をリコールするだけ)、アプリケーションは非常に奇妙に動作します。とにかく、新しい timedwait() を正しくするために timedwait() に行く前に時間を「記憶」する必要があるため、semaphore_timedwait() が中断するような状況を適切に処理することはできません (できますが、非常に醜いです)。
したがって、私の問題の解決策は、現在のスレッドの「中断」を無効にできる場合です-別のスレッド\プロセスから中断される機能であり、lldbが何らかのシグナルを送信した場合、関数は返されません。mac osで可能ですか?