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.