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ね)したときのようだ。
ここらへんの詳細はちょっと探したけれどどうも見つからない...