Мы запускаем squid из gdb - таким образом мы можем автоматически генерировать обратные трассировки для отладки.Запуск программы в gdb, но игнорирование изящного выхода?
backtrace=`mktemp`
gdb -q -x /etc/service/squid3/gdbcommands /usr/sbin/squid 2>&1 >$backtrace
/usr/bin/mail -s "`hostname`: Squid was restarted (backtrace)" [email protected] < backtracetrace
rm $backtrace
/и т.д./сервис/squid3/gdbcommands содержит:
set args -NsYC
handle SIGPIPE pass nostop noprint
handle SIGTERM pass nostop noprint
handle SIGUSR1 pass nostop noprint
handle SIGHUP pass nostop noprint
handle SIGSEGV stop
handle SIGABRT stop
run
set print pretty
backtrace full
generate-core-file
quit
Но, каждый сейчас и потом, кальмар "просто" остановки & перезапущен, без аварии будучи вовлеченным на всех , В этом случае я все еще получаю письмо, содержащее:
Reading symbols from /usr/sbin/squid...done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Inferior 1 (process 57867) exited normally]
/etc/service/squid3/gdbcommands:10: Error in sourced command file:
No stack.
(gdb) quit
И, конечно, нет стеки, так как программа вышла в порядке.
Как я могу изменить файл gdbcommands, чтобы этого избежать?