Похоже, я решил эту проблему, вернувшись к ней через некоторое время. Подсказка о $ _exitcode в одном из ответов для Сделать gdb автоматически завершающим работу при успешном завершении? поставили меня на путь, и какое-то приближение к поиску оказалось gdb hooks .
После некоторых экспериментов, это то, что у меня сейчас есть для .gdbinit этого приложения. Приятно то, что я могу различать сигналы, поэтому обычные команды kill дают мне нормальный полный выход из трехголового монстра (tmux + gdb + app), в то время как все необычное выпадет в оболочку gdb и выкачает письмо и жди меня в tmux для диагностики:
set $_exitcode = -999
set height 0
handle SIGTERM nostop print pass
handle SIGPIPE nostop
define hook-stop
if $_exitcode != -999
quit
else
shell echo | mail -s "NOTICE: app has stopped on unhandled signal" root
end
end
echo .gdbinit: running app\n
run