CDebugReportHook Sınıfı
Adlandırılmış bir kanala hata ayıklama raporları göndermek için bu sınıfı kullanın.
Sözdizimi
class CDebugReportHook
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CDebugReportHook::CDebugReportHook | SetPipeName, SetTimeout ve SetHook çağrıları. |
CDebugReportHook::~CDebugReportHook | CDebugReportHook::RemoveHook'u çağırır. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CDebugReportHook::CDebugReportHookProc | (Statik) C çalışma zamanı hata ayıklama raporlama işlemine bağlı özel raporlama işlevi. |
CDebugReportHook::RemoveHook | Adlandırılmış kanala hata ayıklama raporları göndermeyi durdurmak ve önceki rapor kancasını geri yüklemek için bu yöntemi çağırın. |
CDebugReportHook::SetHook | Adlandırılmış kanala hata ayıklama raporları göndermeye başlamak için bu yöntemi çağırın. |
CDebugReportHook::SetPipeName | Hata ayıklama raporlarının gönderileceği kanalın makine ve adını ayarlamak için bu yöntemi çağırın. |
CDebugReportHook::SetTimeout | Bu sınıfın adlandırılmış kanalın kullanılabilir olmasını bekleyeceği süreyi milisaniye cinsinden ayarlamak için bu yöntemi çağırın. |
Açıklamalar
Adlandırılmış bir kanala hata ayıklama raporları göndermek için hizmetlerinizin veya uygulamalarınızın hata ayıklama derlemelerinde bu sınıfın bir örneğini oluşturun. Hata ayıklama raporları, _CrtDbgReport çağrılarak veya ATLTRACE ve ATLASSERT makroları gibi bu işlev için bir sarmalayıcı kullanılarak oluşturulur.
Bu sınıfın kullanılması, etkileşimli olmayan pencere istasyonlarında çalışan bileşenlerin hatalarını etkileşimli olarak ayıklamanıza olanak tanır.
Hata ayıklama raporlarının iş parçacığının temel güvenlik bağlamı kullanılarak gönderildiğine dikkat edin. Kimliğe bürünme geçici olarak devre dışı bırakıldığından, hata ayıklama raporları web uygulamalarında olduğu gibi düşük ayrıcalıklı kullanıcıların kimliğe bürünmelerinin gerçekleştiği durumlarda görüntülenebilir.
Gereksinimler
Üst bilgi: atlutil.h
CDebugReportHook::CDebugReportHook
SetPipeName, SetTimeout ve SetHook çağrıları.
CDebugReportHook(
LPCSTR szMachineName = ".",
LPCSTR szPipeName = "AtlsDbgPipe",
DWORD dwTimeout = 20000) throw();
Parametreler
szMachineName
Hata ayıklama çıkışının gönderilmesi gereken makinenin adı. Varsayılan olarak yerel makinedir.
szPipeName
Hata ayıklama çıkışının gönderilmesi gereken adlandırılmış kanalın adı.
dwTimeout
Bu sınıfın adlandırılmış kanalın kullanılabilir olmasını bekleyeceği milisaniye cinsinden süre.
CDebugReportHook::~CDebugReportHook
CDebugReportHook::RemoveHook'u çağırır.
~CDebugReportHook() throw();
CDebugReportHook::CDebugReportHookProc
C çalışma zamanı hata ayıklama raporlama işlemine bağlı özel raporlama işlevi.
static int __cdecl CDebugReportHookProc(
int reportType,
char* message,
int* returnValue) throw();
Parametreler
reportType
Raporun türü (_CRT_WARN, _CRT_ERROR veya _CRT_ASSERT).
ileti
İleti dizesi.
returnValue
_CrtDbgReport tarafından döndürülmesi gereken değer.
Dönüş Değeri
Kanca söz konusu iletiyi tamamen işlerse YANLIŞ döndürür, böylece başka raporlama gerekmez. İletiyi normal şekilde raporlaması gerekiyorsa _CrtDbgReport
TRUE döndürür.
Açıklamalar
Raporlama işlevi adlandırılmış kanalı açmaya ve diğer uçta işlemle iletişim kurmaya çalışır. Kanal meşgulse, raporlama işlevi kanal boş olana veya zaman aşımı süresi dolana kadar bekler. Zaman aşımı oluşturucu veya CDebugReportHook::SetTimeout çağrısı tarafından ayarlanabilir.
Bu işlevdeki kod, çağıran iş parçacığının temel güvenlik bağlamında yürütülür, yani bu işlev süresi boyunca kimliğe bürünme devre dışı bırakılır.
CDebugReportHook::RemoveHook
Adlandırılmış kanala hata ayıklama raporları göndermeyi durdurmak ve önceki rapor kancasını geri yüklemek için bu yöntemi çağırın.
void RemoveHook() throw();
Açıklamalar
Önceki rapor kancasını geri yüklemek için _CrtSetReportHook2 çağırır.
CDebugReportHook::SetHook
Adlandırılmış kanala hata ayıklama raporları göndermeye başlamak için bu yöntemi çağırın.
void SetHook() throw();
Açıklamalar
CDebugReportHookProc aracılığıyla adlandırılmış kanala yönlendirilen hata ayıklama raporlarının olması için _CrtSetReportHook2 çağırır. Bu sınıf, RemoveHook çağrıldığında geri yüklenebilmesi için önceki rapor kancasını izler.
CDebugReportHook::SetPipeName
Hata ayıklama raporlarının gönderileceği kanalın makine ve adını ayarlamak için bu yöntemi çağırın.
BOOL SetPipeName(
LPCSTR szMachineName = ".",
LPCSTR szPipeName = "AtlsDbgPipe") throw();
Parametreler
szMachineName
Hata ayıklama çıkışının gönderilmesi gereken makinenin adı.
szPipeName
Hata ayıklama çıkışının gönderilmesi gereken adlandırılmış kanalın adı.
Dönüş Değeri
Başarılı olduğunda TRUE, hatada YANLIŞ döndürür.
CDebugReportHook::SetTimeout
Bu sınıfın adlandırılmış kanalın kullanılabilir olmasını bekleyeceği süreyi milisaniye cinsinden ayarlamak için bu yöntemi çağırın.
void SetTimeout(DWORD dwTimeout);
Parametreler
dwTimeout
Bu sınıfın adlandırılmış kanalın kullanılabilir olmasını bekleyeceği milisaniye cinsinden süre.