XcodeでプロセスにSIGINTを送る

プログラムを実行中にCtrl+Cで処理を止めたい、ということがよくある。XcodeではデフォルトではこのCtrl+Cで送られるSIGINTはデバッグ中のプロセスに送られずにデバッグが終了してしまう。

この動作を変えるにはデバッガlldbのシグナルに対する設定を変える必要がある。

実行中のプロセスをポーズし、デバッガのコンソールで

(lldb) process handle -s false -p true SIGINT
NAME PASS STOP NOTIFY
========== ===== ===== ======
SIGINT true false true

とする。でもどうもCtrl+CではプロセスにSIGINTが送られない。

(lldb) process signal SIGINT

でlldbからSIGINTを送るしかないみたいだ。

実際に送られるのはプロセスの実行を再開(Cmd+Ctrl+Y)し、再度ポーズ(Cmd+Ctrl+Yね)したときのようだ。

ここらへんの詳細はちょっと探したけれどどうも見つからない...