Tutaj jednak pojawia się problem: skąd mam wiedzieć, że program ciągle działa? Chciałbym dostawać jakieś powiadomienie w razie wystąpienia problemu. Poszperałem w paru źródłach, założyłem konto na Twitterze i ostatecznie stworzyłem taki oto plik .gdbinit:
define hook-run
set logging overwrite off
set logging file killer-gdb-log.txt
set logging on
end
define hook-stop
backtrace
shell rm -rf hook-stop-log.txt
shell tail -n 50 killer-gdb-log.txt >> hook-stop-log.txt
shell echo "----------------------" >> hook-stop-log.txt
shell tail -n 50 killer-run-log.txt >> hook-stop-log.txt
shell tar -czf killer-gdb-log.txt.tgz killer-gdb-log.txt
shell tar -czf killer-run-log.txt.tgz killer-run-log.txt
shell echo | mail -a killer-gdb-log.txt.tgz -a killer-run-log.txt.tgz -q "hook-stop-log.txt" -s "killer :: gdb :: hook-stop" ADRES@MAILOWY.COM
shell ~/tener/twidge update "killer :: gdb :: hook-stop"
end
define hook-continue
shell ~/tener/twidge update "killer :: gdb :: hook-continue"
end
Jak można się domyśleć, o zatrzymaniu muda wysyłane są powiadomienia na Twittera, podobnie o kontynuacji jego uruchomienia. Przy zatrzymaniu wysyłany jest także mail.
Stworzenie sesji jest dość proste:
screen
cd ~/mud/area
gdb ../src/rom
run 3000 >> killer-run-log.txt 2>&1
Teraz robimy tylko "Ctrl-a d" i mamy działającą w tle sesję GDB.
Garść linków:
- Screen: http://en.wikipedia.org/wiki/GNU_Screen
- GDB, manual: http://www.linuxtopia.org/online_books/redhat_linux_debugging_with_gdb/index.html
- Twitter: http://twitter.com
- Twidge, klient Twittera napisany w Haskellu: http://software.complete.org/software/projects/show/twidge
- moje konto na Twitterze: http://twitter.com/tener
- konto muda na Twitterze: http://twitter.com/killermud
Boskie. Proste i boskie.
OdpowiedzUsuń