Backtrace

Segfault i debug procesu z GDB/coredumpctl w Debian Linux

Każdy z nas korzysta z całej masy aplikacji na swoich linux'ach. Na ogół te appki działają w sposób oczekiwany i nie ma z nimi większych problemów. Czasem jednak zdarza się tak, że z jakiegoś powodu taki program niespodziewanie kończy swoje działanie i w konsoli (czy logu systemowym) zostaje wydrukowany komunikat zawierający frazę segfault (segmentation fault, naruszenie ochrony pamięci). Ostatnio taki problem dotknął jedną z moich ulubionych aplikacji, z których korzystam na co dzień, tj. strawberry . Gdyby ta sytuacja wystąpiła raz, to pewnie nawet bym się nią bardziej nie zainteresował ale w tym przypadku ten cały segfault potrafił wyskoczyć kilka-kilkanaście razy w ciągu godziny, co trochę zaczęło mnie irytować. Postanowiłem poszukać przyczyny i nawet znalazłem stosowny bug na git projektu strawberry, no ale sytuacja niby nowa, a mi ta appka crash'owała od dobrych kilku tygodni, jeśli nie miesięcy. Dlatego też zacząłem udzielać się w tamtym wątku i przy okazji nauczyłem się jak przy pomocy gdb (GNU Debugger) pozyskać nieco bardziej użyteczne informacje i podesłać je deweloperowi aplikacji, tak by był on w stanie namierzyć przyczynę i wyeliminować zaistniały problem. W tym artykule została zebrana garść użytecznych informacji, które mogą przydać się użytkownikowi Debiana, na wypadek gdyby i jego aplikacje cierpiały na podobne problemy.