Normalde Flatpak uygulamalarını uçbirim altında şu şekilde çalıştırmak mümkün:

Örneğin:

flatpak run com.github.ADBeveridge.Raider

Fakat flatpak altında gdb çalıştırabilmek için bu komutta küçük bir düzenleme yapmamız gerekiyor.

flatpak run --devel --command=sh com.github.ADBeveridge.Raider

Sonrasında gdb ile uygulamayı çalıştırıyoruz. Flatpak uygulamalarının çalıştırılabilir dosyaları /app/bin/ altında bulunuyor.

gdb /app/bin/raider

GDB çalıştığında şu şekilde bir soru sorarsa. Yes deyip devam edebiliriz.

Enable debuginfod for this session? (y or [n]) 

Aşağıdaki gibi bir soru gelirce C ile devam etmek etmek yeterli.

--Type  for more, q to quit, c to continue without paging--

Uçbirim ekranında (gdb) yazısı görünüyorsa devam edebilirsiniz.

(gdb)

Sonrasınra run komutunu çalıştırıyoruz.

(gdb) run

Artık uygulamada yaşadığınız hatayı yeniden oluşturabiliriz.

Aynı hata oluşunca uçbirime dönüp bt komutunu çalıştırıyoruz.

(gdb) bt

Sonrasında çıkan sonucu kopyalayıp, hata raporuna ekliyoruz. Örneğin şöyle bir sonuç çıkacaktır.

Thread 1 "raider" received signal SIGSEGV, Segmentation fault.
0x000055555555afef in ?? ()
(gdb) bt
#0  0x000055555555afef in  ()
#1  0x000055555555b62e in  ()
#2  0x00007ffff72b9c7c in g_idle_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff72bdd99 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff72be2f8 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff72be393 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff750272d in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#7  0x00005555555592b6 in  ()
#8  0x00007ffff6e2954a in __libc_start_call_main () at /usr/lib/x86_64-linux-gnu/libc.so.6
#9  0x00007ffff6e2960b in __libc_start_main () at /usr/lib/x86_64-linux-gnu/libc.so.6
#10 0x0000555555559305 in  ()

Kaynakça:
– https://blogs.gnome.org/mclasen/2017/01/20/debugging-a-flatpak-application/
– https://docs.flatpak.org/en/latest/debugging.html

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir