Çökme raporlayıcısı

Vikipedi, özgür ansiklopedi

Çökme raporlayıcısı veya çökme habercisi, genellikle işlevi, üretim veya geliştirme/test ortamlarında çökme bilgilerini tanımlamak ve çökmeler meydana geldiğinde kullanıcıyı uyarmak olan bir yazılımdır. Çökme raporlayıcısı çoğunlukla yığın izleri, çökme türü, eğilimler ve yazılım sürümü gibi verileri içerir. Yazılım geliştiricilerin web, SAAS, mobil uygulamalar ve daha birçok platformda çökmelere neden olan temel sorunu bulmalarına ve gidermelerine yardımcı olur. Ayrıca parolalar, e-posta adresleri ve iletişim bilgileri gibi hassas bilgileri de içerir. Bu nedenle de bilgisayar güvenliği alanındaki araştırmacılar için ilgi çekici hale gelmiştir.[1]

Çökme raporlama araçlarını, geliştirme döngüsünün bir parçası olarak döngüye eklemek bir standart haline, bu araçlar da bir ürün haline geldi. Ayrıca bu araçların çoğu Crashlytics aracı gibi ücretsiz olarak sunulmaktadır.

Yazılım geliştirme ekosisteminin bir parçası olan birçok büyük sektör oyuncusu oyuna girdi. Twitter, Google gibi şirketler ve diğerleri, yazılım geliştiricilerini, kendi şirketlerinin API'larını kullanmaya teşvik etmek için çok çaba sarfediyor ve bunun da gelirlerini artıracağını (reklamlar ve diğer mekanizmalar aracılığıyla) biliyorlar. Olabildiğince çok geliştirme sorunu için zekice çözümler sunmaları gerektiğini fark ettiklerinde rakipleri harekete geçecek olsa bile gelişmiş özellikler eklemeye devam ederler. Çökme raporlama araçları, dev şirketlerin çözüm portföylerine dahil ettikleri önemli bir geliştirme işlevidir.

Birçok çökme raporlama aracı mobil uygulamalar için de özelleşmiştir. Bunların çoğu SDK'lardır.

MacOS[değiştir | kaynağı değiştir]

MacOS işletim sisteminde/System/Library/CoreServices/Crash Reporter.app dosya yolunda standart bir çökme raporlama yazılımı bulunmaktadır. Crash Reporter.app, mühendislerinin bakması için Unix çökme günlüklerini Apple'a gönderir. Pencerenin üst metin alanı çökme günlüğü, alt alan ise kullanıcı yorumları içindir. Kullanıcılar ayrıca günlükleri, uygulama sahiplerine kullanmaları için göndermek üzere kopyalayıp e-posta istemcilerine yapıştırıp gönderebilirler.

Crash Reporter.app yazılımının 3 ana modu vardır:

  • Çökme anında hiçbir şey gösterme
  • "Uygulama çöktü" iletişim kutusunu göster
  • Çökme Raporu sayfasını göster

Windows[değiştir | kaynağı değiştir]

Microsoft Windows, kullanıcılardan çevrimiçi analiz için Microsoft'a çökme raporları göndermelerini isteyen Windows Error Reporting (Windows Hata Bildirimi) adında bir çökme raporlama hizmeti içerir.[2] Bilgiler, Microsoft tarafından çalıştırılan merkezi bir veritabanına gider. Çökmeden sorumlu şirketin veya geliştirme ekibinin, sorunu seçmeleri durumunda sorunun hatalarını ayıklamasına ve çözmesine yardımcı olan tanılama bilgilerinden oluşur. Üçüncü taraf yazılımlara ilişkin çökme raporları, Microsoft tarafından erişim izni verilen üçüncü taraf geliştiriciler tarafından kullanılabilir.

Sistem, hata ayıklama ve piyasaya sürme işlemlerinin tüm bölümlerini göz önünde bulundurur. Böylece hedeflenen hata düzeltmeleri Windows Update (Windows Güncelleştirmesi) aracılığıyla uygulanabilir. Başka bir deyişle, hata düzeltmesi yalnızca belirli bir çökme türünü yaşayan kişilere sunulabilir ve bu da, bir soruna ve hataya maruz kalmayı sınırlar.

Der Spiegel'e göre Microsoft çökme raporlama yazılımı, Meksika'nın Kamu Güvenliği Sekreterliği bilgisayarlarına saldırmak için NSA'nın Özel Erişim Operasyonları (Tailored Access Operations - TAO) birimi tarafından kullanılmış ve sömürülmüştür. Yine aynı kaynağa göre Microsoft çökme raporları, bu tür işleri kolaylaştırmak için NSA'nın XKeyscore veritabanında otomatik olarak toplanıyor.[3]

CrashRpt[değiştir | kaynağı değiştir]

Windows için bir diğer hata raporlama kütüphanesi de CrashRpt'dir. CrashRpt kütüphanesi, Microsoft Visual C++ ile oluşturulan ve Windows üzerinde çalışan uygulamalar için hafif, açık kaynaklı bir hata işleme platfromu/iskeletidir. Kütüphane Yeni BSD Lisansı altında dağıtılmaktadır.

CrashRpt sırasıyla aşağıdaki işlemleri yapar:

  1. İşlenmemiş istisnaları yakalar
  2. Küçük bir döküm (minidump) dosyası oluşturur
  3. XML formatında bir çökme açıklayıcısı oluşturur
  4. Kullanıcının çökme raporunu incelemesine olanak sağlayan bir arayüz sunar
  5. Son olarak da çökme raporunu sıkıştırıp yazılım destek ekibine gönderir.

CrashRpt ayrıca crprober adlı, çökme raporu analizi için sunucu tarafı bir komut satırı aracı da içerir. Bir dizinden alınan tüm çökme raporlarını okuyabilir ve her çökme raporu için metin formatında bir özet dosyası oluşturabilir. Ayrıca en sık karşılaşılan sorunların belirlenmesini kolaylaştıran benzer çökme raporlarını da gruplandırır. Crprober aracı herhangi bir grafiksel arayüz sunmaz. Bu nedenle gizemli ve kullanımı zordur.

CrashRpt kütüphanesi tarafından gönderilen çökme raporlarını depolayabilen, düzenleyebilen ve analiz edebilen CrashFix Server adlı açık kaynaklı bir sunucu yazılımı da vardır. Benzer çökme raporlarını gruplayabilir; yerleşik hata izleyicisine sahiptir ve istatistiksel raporlar oluşturabilir. CrashFix sunucusu, birden fazla proje üyesinin işbirliği yapmasını (hata ayıklama sembollerini yüklemek, çökme raporlarına göz atmak ve hataları çökme raporlarıyla ilişkilendirmek gibi) sağlayan web tabanlı bir kullanıcı arayüzü sağlar.

Linux[değiştir | kaynağı değiştir]

ABRT[değiştir | kaynağı değiştir]

Fedora 31 işletim sisteminde çalışan ABRT hata raporlama aracı (Ekim 2019)

ABRT'nin (Automated Bug Reporting Tool - Otomatik Hata Raporlama Aracı) dağıtımdan bağımsız olduğu iddia edilirken 2013'ten itibaren sadece Fedora ve Red Hat Enterprise Linux dağıtımlarına dağıtıldı. ABRT, uygulamalardan kaynaklanan çekirdek dökümlerini veya geri izlemeyi durdurur ve Fedora Bugzilla gibi çeşitli hata izleme sistemlerine (kullanıcı onayından sonra) hata raporları gönderir [1] 17 Ağustos 2020 tarihinde Wayback Machine sitesinde arşivlendi..[4]

Ubuntu Hata izleyicisi[değiştir | kaynağı değiştir]

Ubuntu, errors.ubuntu.com 2 Kasım 2012 tarihinde Wayback Machine sitesinde arşivlendi.[5] adresinde, milyonlarca makineden her gün yüz binlerce hata raporu toplayan halka açık bir hata izleyicisi barındırır.[6] Ubuntu'da bir program çökerse Apport gibi[7] bir hata işleyicisi kullanıcıyı bilgilendirir ve çökmeyi raporlamayı önerir. Kullanıcı çökme raporu bildirmeyi seçerse ayrıntılar (muhtemelen çekirdek dökümü de dahil) analiz için Ubuntu sunucusuna (daisy.ubuntu.com[ölü/kırık bağlantı]) yüklenir.[8] Çekirdek dökümü, yığın izlemesi ve çökme imzası oluşturmak için otomatik olarak işlenir. Çökme imzası, aynı hatanın neden olduğu sonraki çökme raporlarını sınıflandırmak için kullanılır.

GNOME[değiştir | kaynağı değiştir]

GNOME 2.16 işletim sisteminde çalışan Bug Buddy çökme raporlama aracı

Bug Buddy, GNOME platformu tarafından kullanılan bir çökme raporlama aracıdır. GNOME kütüphanelerini kullanan bir uygulama çöktüğünde Bug Buddy, gdb'yi kullanarak bir yığın izi oluşturur ve kullanıcıyı raporu GNOME bugzilla'ya göndermeye davet eder. Kullanıcı yorum ekleyebilir ve çökme raporunun ayrıntılarını görüntüleyebilir.

KDE[değiştir | kaynağı değiştir]

KDE masaüstü ortamı tarafından kullanılan çökme raporlama aracı Dr. Konqi olarak adlandırılmaktadır. Kullanıcı, gdb'yi kullanarak yığın izleme de yapabilir.

Mozilla[değiştir | kaynağı değiştir]

Talkback[değiştir | kaynağı değiştir]

Talkback (Kalite Geri Bildirim Aracı olarak da bilinir), Mozilla yazılımı tarafından 1.8.1 sürümüne kadar kullanılan ve ürün çökmelerini toplu veya duruma göre analiz için merkezi bir sunucuya bildirmek için kullanılan çökme raporlama yazılımıdır.[9] TalkBack, SupportSoft tarafından Mozilla Corporation'a lisanslanmış tescilli bir yazılımdır. Bir mozilla ürünü (örneğin Mozilla Firefox, Mozilla Thunderbird gibi), Talkback etkinken çöktüğünde Talkback aracı görünerek kullanıcıdan çökme hakkında isteğe bağlı olarak bilgi vermesini ister. TalkBack, etkinleştirildiğinde Talkback aracı ile birlikte görüntülenecek olan yerel işletim sistemi çökme raporlama aracının yerini almaz. Firefox'taki TalkBack aracı, sürüm 3'ten bu yana Breakpad yazılımı ile değiştirilmiştir.

Breakpad[değiştir | kaynağı değiştir]

Xfce4 masaüstü ortamıyla Debian üzerinde çalışan Mozilla Crash Reporter (Mozilla Çökme Habercisi) aracı

Breakpad (önceden Airbag olarak adlandırılıyordu) Talkback için açık kaynaklı bir alternatiftir. Google ve Mozilla tarafından geliştirilmiştir. Firefox ve Thunderbird gibi Mozilla ürünlerinde kullanılmaktadır.[10][11] Bu yazılımın önemi, ilk açık kaynaklı çok platformlu çökme raporlama sistemi olmasıdır.

2007'den beri Breakpad; Windows, MacOS X ve Linux'ta Firefox'a dahil edilmiştir.[12] Genellikle, kullanıcılardan gelen çökmeleri alan ve sınıflandıran Socorro ile eşleştirilmiştir.

Breakpad'in kendisi, raporlama mekanizması içermediğinden çökme raporlama sisteminin yalnızca bir parçasıdır.

Crashpad[değiştir | kaynağı değiştir]

Crashpad, Google tarafından Chromium'da kullanılan açık kaynaklı bir çökme raporlama yazılımıdır. MacOS sürüm 10.10'da[13] Breakpad tarafından kullanılan API'leri kaldırmış olan bir güncelleme nedeniyle Breakpad'in yerini alacak şekilde geliştirilmiştir. Şu anda bir çökme raporlama istemcisinden ve MacOS ve Windows için bazı ilgili araçlardan oluşuyor ve bu platformlar için önemli ölçüde tamamlanmış kabul ediliyor. Crashpad, Mart 2015 itibarıyla MacOS'ta ve Kasım 2015 itibarıyla da Windows'ta Chromium için çökme raporlarma istemcisi oldu.[14]

World of Warcraft[değiştir | kaynağı değiştir]

World of Warcraft, "Error Reporter (Hata Raporlayıcısı)" adında, kendi çökme raporlama aracını kullanan bir diğer programdır. Error Reporter her zaman çökmeleri algılamayabilir; bazen bunun yerine işletim sisteminin kendi çökme raporlayıcısı çağrılır. Error Reporter'ın, hataları bildirirken çöktüğü bile bilinmektedir.

Mobil işletim sistemleri[değiştir | kaynağı değiştir]

Anroid ve İOS işletim sistemleri de yerleşik çökme raporlama işlevine sahiptir.[15][16]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ Satvat, Kiavash; Saxena, Nitesh (2018), Crashing Privacy: An Autopsy of a Web Browser's Leaked Crash Reports, cs.CR, arXiv:1808.01718 $2 
  2. ^ "Using Microsoft Online Crash Analysis". 2 Ocak 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2020. 
  3. ^ "Arşivlenmiş kopya". 7 Ocak 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2020. 
  4. ^ "Arşivlenmiş kopya". 17 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2020. 
  5. ^ "Arşivlenmiş kopya". 2 Kasım 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2020. 
  6. ^ "Ubuntu Error Tracker". 2 Kasım 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2020. 
  7. ^ Ubuntu info on Apport 11 Mayıs 2015 tarihinde Wayback Machine sitesinde arşivlendi., a crash handling software developed by Martin Pitt 2006–10 29 Şubat 2020 tarihinde Wayback Machine sitesinde arşivlendi., as described in his talk The Apport crash handling system: Bringing the fun back to segfaults 2 Ekim 2016 tarihinde Wayback Machine sitesinde arşivlendi.
  8. ^ "ErrorTracker design". 1 Mart 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2020. 
  9. ^ "Mozilla Talkback server". 11 Nisan 2004 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Eylül 2006. 
  10. ^ Deploying the Airbag 28 Haziran 2008 tarihinde Wayback Machine sitesinde arşivlendi.. BSBlog (Mozilla developer Benjamin Smedberg's weblog).
  11. ^ Using Breakpad with Gran Paradiso (1.9a3) 15 Haziran 2008 tarihinde Wayback Machine sitesinde arşivlendi.. BSBlog (Mozilla developer Benjamin Smedberg's weblog).
  12. ^ Bug 381099 – Turn on crash reporting by default (Win+Mac) 27 Temmuz 2020 tarihinde Wayback Machine sitesinde arşivlendi., mozilla.org bug tracker.
  13. ^ "Introducing Crashpad". 23 Mayıs 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ağustos 2017. 
  14. ^ "Crashpad Homepage". 1 Ağustos 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ağustos 2017. 
  15. ^ "New Android app crash report tool already up and running". 22 Mayıs 2010. 23 Mayıs 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Haziran 2011. 
  16. ^ "Technical Note TN2151". 8 Eylül 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Haziran 2011. 

Dış bağlantılar[değiştir | kaynağı değiştir]