The sig signal event occurs when the signal is first delivered to the program being debugged. signal can be either a decimal number or the signal name in uppercase or lowercase; the prefix is optional. This is completely independent of the catch command and ignore command, although the catch command can be implemented as follows:
function simple_catch { when sig $1 { stop; echo Stopped due to $sigstr $sig whereami } } |
When the sig event is received, the process has not seen it yet. Only if you continue the process with the specified signal is the signal forwarded to it.