Aracılığıyla paylaş


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.

Ayrıca bkz.

Sınıflar