Aracılığıyla paylaş


_CrtDbgReport, _CrtDbgReportW

Hata ayıklama iletisi içeren bir rapor oluşturur ve üç olası hedefler (yalnızca hata ayıklama sürümü) raporu gönderir.

int _CrtDbgReport( 
   int reportType,
   const char *filename,
   int linenumber,
   const char *moduleName,
   const char *format [,
   argument] ... 
);
int _CrtDbgReportW( 
   int reportType,
   const wchar_t *filename,
   int linenumber,
   const wchar_t *moduleName,
   const wchar_t *format [,
   argument] ... 
);

Parametreler

  • reportType
    Report type: _CRT_WARN, _CRT_ERROR, and _CRT_ASSERT.

  • filename
    Onaylama/rapor oluştuğu kaynak dosyasının adını gösteren işaretçi veya NULL.

  • linenumber
    Onaylama/rapor oluştuğu kaynak dosyadaki satır veya NULL.

  • moduleName
    Onaylama/rapor oluştuğu modül (.exe veya .dll) adı için işaretçi.

  • format
    Kullanıcı iletiyi oluşturmak için kullanılan Denetim Biçimlendir dize işaretçisi.

  • argument
    Tarafından kullanılan isteğe bağlı bir değiştirme bağımsız format.

Dönüş Değeri

Tüm rapor hedefler için _CrtDbgReport ve _CrtDbgReportW herhangi bir hata oluşursa, bir hata oluşursa –1 ve 0 döndürür. Ancak, bir hata ayıklama iletisi penceresi ve kullanıcı rapor hedef olduğunda tıklattığında Retry düğmesi, bu işlevlere dönmek 1. Kullanıcı tıklattığında Abort düğmesini hata ayıklama iletisi penceresinde, bu işlevler hemen iptal etmek ve bir değer döndürmüyor.

_rpt, _rptf hata ayıklama makroları çağrısı _CrtDbgReport , hata ayıklama oluşturulacak raporları. Bu makroları geniş karakter sürümleri yanı _assert [e, _RPTWn ve _RPTFWn, kullanmak _CrtDbgReportW , hata ayıklama oluşturulacak raporları. Zaman _CrtDbgReport veya _CrtDbgReportW 1, dönüş just-in-time (JIT) hata ayıklama etkin olduğunu, bu makroları hata ayıklayıcısını başlatma.

Notlar

_CrtDbgReportve _CrtDbgReportW hata ayıklama rapor üç farklı hedeflere gönderebilirsiniz: hata ayıklama rapor dosyası, bir hata ayıklama monitör ( Visual Studio hata ayıklayıcı), ya da bir hata ayıklama iletisi penceresi. İki yapılandırma İşlevler, _CrtSetReportMode ve _CrtSetReportFile, hedef veya hedefler her rapor türü belirtmek için kullanılır. Bu işlevler, raporlama hedef veya hedefler ayrı olarak denetlenen her rapor türü için izin verir. Örneğin belirtmek olası bir reportType , _CRT_WARN yalnızca hata ayıklama İzleyicisi'ne gönderilen, while bir reportType , _CRT_ASSERT bir hata ayıklama iletisi penceresi ve kullanıcı tanımlı rapor dosyası gönderme.

_CrtDbgReportWgeniş karakter sürümü _CrtDbgReport. Tüm çıktı ve dize parametrelerini geniş karakter dizeleri şunlardır; Aksi takdirde tek baytlı karakter sürüme aynıdır.

_CrtDbgReportve _CrtDbgReportW getirilmesiyle hata ayıklama raporu için kullanıcı iletisi oluşturmak argumentn bağımsız değişkenleriyleformat dizesi tarafından tanımlanan aynı kuralları kullanarak printf veya wprintf fonksiyonlar. Bu işlevler, sonra hata ayıklama raporu oluşturmak ve hedef veya geçerli rapor modları üzerinde temel hedefleri belirlemek ve dosya tanımlı için reportType. Rapor bir hata ayıklama iletisi penceresi gönderildiğinde, filename, lineNumber, ve moduleName penceresinde görüntülenen bilgiler dahil edilir.

Rapor modu veya modları dosya ve elde edilen davranışı için kullanılabilir seçenekleri aşağıdaki tabloda _CrtDbgReport ve _CrtDbgReportW. Bu seçenekler, Crtdbg.h bit bayrak olarak tanımlanır.

Rapor modu

Rapor dosyası

_CrtDbgReport, _CrtDbgReportW davranışı

_CRTDBG_MODE_DEBUG

Yok

Windows ileti yazma OutputDebugString API.

_CRTDBG_MODE_WNDW

Yok

Windows çağıran MessageBox API'si ile birlikte iletiyi görüntülemek için ileti kutusu oluşturmak için Abort, Retry, ve Ignore düğmeleri. Kullanıcı tıklattığında, Abort, _CrtDbgReport veya _CrtDbgReport hemen iptal eder. Kullanıcı tıklattığında, Retry, 1 döndürür. Kullanıcı tıklattığında, Ignore, yürütme devam eder ve _CrtDbgReport ve _CrtDbgReportW 0 döndürür. O tıklatarak Not Ignore ne zaman bir hata koşulu var genellikle sonuçları "tanımsız davranışı."

_CRTDBG_MODE_FILE

__HFILE

Kullanıcı tarafından sağlanan ileti yazma HANDLE, Windows kullanarak WriteFile API dosya tanıtıcısı; geçerliliğini doğrulamaz Uygulama rapor dosyasını açmak ve geçerli dosya tanıtıcısı geçirerek sorumludur.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

İleti yazma stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

İleti yazma stdout.

Rapor bir, iki veya üç hedeflerine ya da hiçbir hedef hiç gönderilebilir. Rapor modu veya modları ve rapor dosyasını belirtme hakkında daha fazla bilgi için bkz: _CrtSetReportMode ve _CrtSetReportFile fonksiyonlar. Hata ayıklama makroları kullanma ve raporlama işlevleri hakkında daha fazla bilgi için bkz: Makro kullanarak doğrulama ve raporlama için.

Uygulama tarafından sağlanan kıyasla daha çok esneklik gerekip gerekmediğini _CrtDbgReport ve _CrtDbgReportW, kendi Raporlama işlevini yazın ve raporlama düzeneğini kullanarak c Çalışma Zamanı Kitaplığı içine kanca _CrtSetReportHook işlevi.

Gereksinimler

Yordamı

Gerekli başlık

_CrtDbgReport

<crtdbg.h>

_CrtDbgReportW

<crtdbg.h>

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Kitaplıkları

Hata ayıklama sürümlerini c çalışma zamanı kitaplıkları yalnızca.

Örnek

// crt_crtdbgreport.c
#include <crtdbg.h>

int main() {
#ifdef _DEBUG
   CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}

Bkz: crt_dbg2 ilgili rapor işlevi değiştirmek bir örnek.

.NET Framework Eşdeğeri

Ayrıca bkz.

Başvuru

Yordamlar hata ayıklama

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG