В моем сценарии использования у меня GDB на Mac отлаживает подчиненный X. Отдельный процесс Y продолжает посылать SIGTRAPs в X (используя kill (pid, SIGTRAP)) в быстрой последовательности, которая должна быть перехвачена и обработана GDB.
В версии GDB для Mac имеется поток, ожидающий на портах исключения для процесса X. Когда Y отправляет сигнал X, он отображается на порте исключения для X в качестве сообщения об исключении (используя ядрофункция "softsignals").
Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз и соответствующее сообщение об исключении не принимается GDB через порт исключения X, даже если сигнал был отправлен Y в X.
Я пытался использовать dtrace, чтобы убедиться, что ядро видит отправляемый сигнал, но я делаю что-то не так, dtrace ничего не показывает ни для какого процесса:
sudo dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
... делаетне показывает никаких сигнатур, отправляемых Y в X, даже если GDB их обработал.
Заранее спасибо!