GNAT, I want to send a signal to the program to control my probes. But
the signal seems to get lost. Why?
It turns out that GNAT blocks this signal
with a call to thr_sigsetmask. The following probe can be added to your
existing probes to unmask this signal. This works by intercepting the
thr_sigsetmask function, and, if the caller is requesting to add or set
the signals, removing the SIGUSR1 from the mask they provide.
probe "thr_sigsetmask()" in "libthread.so"
// Do we have new signals or
// is this just
a request for info?
NewSigset = (sigset_t *) $2;
// What sort?
if ($1 == SIG_BLOCK || $1 ==
// Remove SIGUSR1