2012-07-05 17 views
6

google-breakpad kullanıyorum. Bu, başka bir işlemin çökmelerini bildirmek için arka planda çalışan bir hata raporlama programıdır.Google breakpad neden tüm kilitlenmeleri işlemez? Bu vakalarda nasıl hata ayıklayabilirim?

Neredeyse her durumda çalışır. Bununla birlikte, bazen bir kilitlenme yakalamakta başarısız olur. Rapor yok ve çöplük dosyası yok. Sadece çöküyor. Kaza için son ipucu bir Windows olay mesajıdır.

Bu çökmelerde nasıl hata ayıklayabilirim? Breakpad'in çarpma işlemine ne sebep olmasın? Durumu ayıklamak için hangi yöntemleri kullanabilirim?

+0

Bunlar SEH istisnaları olabilir mi? Yığın taşması veya ihlallere erişim gibi şeyler mi? –

+0

Sanırım taşma taşmasıyla ilgili olabilir. Breakpad erişim ihlallerini iyi takip ediyor. – Hybrid

+1

Breakpad, SetUnhandledExceptionFilter() işlevini (windows) kullandığını söylüyor. SetUnhandledExceptionFilter için geri çağırma işlevinin, bu durumda sonlandırılan işlemden önce bile çağrıldığından emin değilim. – Hybrid

cevap

10

Visual C++ C/C++ çalışma zamanı kitaplığı, belirli durumlarda SetUnhandledExceptionFilter ile ayarlanan kancayı kaldıracak; örneğin, bir arabellek taşması veya başka bir güvenlik sorunu algıladığında.

This Microsoft feedback page, bu davranışın çoğu durumda nasıl durdurulacağını listeler, ancak güvenlik sorunlarını uygulamadan arabellek taşması durumunda bunun mümkün olmadığını belirtir.

+0

Microsoft geribildirim sayfasını göremiyorum - yeni bir bağlantı veya bakabileceğim bir şey var mı? –

+4

Sayfa 404'ü aşmış görünüyor. Tam olarak ne olduğunu hatırlamıyorum, ancak _set_abort_behavior ve _set_invalid_parameter_handler için MSDN belgelerini deneyin. –

İlgili konular