Çökme raporlayıcısı

**Çö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.

Çö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 sarf ediyor 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
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
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. 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.

### CrashRpt
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:

#  İşlenmemiş istisnaları yakalar 
#  Küçük bir döküm (minidump) dosyası oluşturur 
#  XML formatında bir çökme açıklayıcısı oluşturur 
#  Kullanıcının çökme raporunu incelemesine olanak sağlayan bir arayüz sunar 
#  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

### ABRT

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 https://github.com/abrt/abrt/blob/master/README.md .

### Ubuntu Hata izleyicisi
Ubuntu, errors.ubuntu.com  adresinde, milyonlarca makineden her gün yüz binlerce hata raporu toplayan halka açık bir hata izleyicisi barındırır. Ubuntu'da bir program çökerse Apport gibi 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) yüklenir. Ç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

**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
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

### Talkback
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. TalkBack, SupportSoft tarafından Mozilla Corporation'a lisanslanmış özel mülk 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

*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. 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. 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
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 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.

## World of Warcraft
*[[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
Anroid ve İOS işletim sistemleri de yerleşik çökme raporlama işlevine sahiptir.

## Kaynakça

## Dış bağlantılar
* KDE kullanarak kullanışlı çökme raporları nasıl oluşturulur? 
* KernelOops Linux çekirdek hata sayısı sitesi 
* ABRT - Otomatik Hata Raporlama Aracı 
* Mobil çökme raporlama araçlarına genel bakış