_CrtDbgReport, _CrtDbgReportW

Hata ayıklama iletisi içeren bir rapor oluşturur ve rapor üç olası hedefleri (yalnızca hata ayıklama sürümü) 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
    Rapor türü: _CRT_WARN, _CRT_ERROR, ve _CRT_ASSERT.

  • filename
    İşaretçi iddia rapor oluştuğu kaynak dosyasının adını veya NULL.

  • linenumber
    Satır numarası iddia rapor oluştuğu kaynak dosyasındaki veya NULL.

  • moduleName
    İşaretçi Modülü (.exe veya .dll) adını burada iddia veya rapor oluştu.

  • format
    Kullanıcı iletisi oluşturmak için kullanılan biçimi-control dizesi işaretçisi.

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

Dönüş Değeri

Tüm rapor hedefler için _CrtDbgReport ve _CrtDbgReportW herhangi bir hatayla bir hata oluştuğunda, -1 ve 0 döndürür.Ancak, rapor hedef bir hata ayıklama ileti penceresi ve kullanıcı olduğunda tıklattığında yeniden düğmesi, bu işlevler 1 döndürür.Kullanıcı durdurma düğmesi hata ayıklama ileti penceresinde, bu işlevler hemen durdurmak ve bir değer döndürmeyen.

_RPT, _RPTF hata ayıklama makro araması _CrtDbgReport raporları kendi hata ayıklama oluşturmak için.Bu makro geniş karakter sürümlerini de _ASSERT [E], _RPTWn ve _RPTFWn, kullanın _CrtDbgReportW raporları kendi hata ayıklama oluşturmak için.Zaman _CrtDbgReport veya _CrtDbgReportW 1, iade yalnızca zamanında (JIT) hata ayıklama etkin koşuluyla hata ayıklayıcısı, bu makro Başlat.

Notlar

_CrtDbgReportve _CrtDbgReportW hata ayıklama rapor üç farklı hedeflere gönderebilirsiniz: hata ayıklama rapor dosyası, bir hata ayıklama İzleyici ( Visual Studio hata ayıklayıcısı), veya bir hata ayıklama ileti penceresi.İki yapılandırma İşlevler, _CrtSetReportMode ve _CrtSetReportFile, hedef veya her rapor türü için hedefleri belirtmek için kullanılır.Bu işlevler raporlama hedef veya ayrı olarak denetlenecek her rapor türü için hedefleri izin verir.Örneğin, belirtmek olası bir reportType , _CRT_WARN yalnızca hata ayıklama izleyiciyi gönderilen, çalışırken bir reportType , _CRT_ASSERT bir hata ayıklama ileti penceresi ve bir kullanıcı tarafından tanımlanan rapor dosyası için gönderilemez.

_CrtDbgReportWgeniş karakter sürümü _CrtDbgReport.Çıkış ve dize tüm parametrelerinin içinde geniş karakter dizelerdir; Aksi takdirde tek bayt karakter sürüme özdeş olur.

_CrtDbgReportve _CrtDbgReportW koyarak tarafından hata ayıklama rapor için kullanıcı iletiyi oluşturmak argument[n] bağımsız değişkenler format tarafından tanımlanan aynı kuralları kullanarak, dize printf veya wprintf işlevleri.Bu işlevler sonra hata ayıklama raporu oluşturmak ve hedef veya hedefleri, geçerli rapor modlarını tabanlı belirlemek ve dosya için tanımlı reportType.Rapor bir hata ayıklama ileti penceresi gönderildiğinde filename, lineNumber, ve moduleName penceresinde görüntülenen bilgiler dahil edilir.

Aşağıdaki tablo rapor modu veya modları dosya ve sonuçta elde edilen davranışı için kullanılabilir seçenekleri listeler _CrtDbgReport ve _CrtDbgReportW.Bu seçenekleri < crtdbg.h > bit bayrak olarak tanımlanır.

Rapor modu

Rapor dosyası

_CrtDbgReport, _CrtDbgReportW davranışı

_CRTDBG_MODE_DEBUG

Uygulanamaz

Windows kullanarak iletisi Yazar OutputDebugString API.

_CRTDBG_MODE_WNDW

Uygulanamaz

Windows çağırır MessageBox ile birlikte iletisini görüntülemek için ileti kutusu oluşturmak için API durdurma, yeniden deneme, ve Yoksay düğmeler.Bir kullanıcı durdurma, _CrtDbgReport veya _CrtDbgReport hemen durdurur.Bir kullanıcı yeniden, 1 döndürür.Bir kullanıcı Yoksay, uygulamayı yürütmeye devam eder ve _CrtDbgReport ve _CrtDbgReportW 0 döndürür.Bu tıklatarak Not Yoksay olduğunda bir hata koşulu var genellikle sonuçları "Tanımlanamayan davranışı."

_CRTDBG_MODE_FILE

__HFILE

Kullanıcı tarafından sağlanan yazma iletiye HANDLE, Windows kullanarak WriteFile API ve dosya tanıtıcı; geçerliliğini doğrulayın değil Rapor dosyası açılırken ve geçerli bir dosya tanıtıcı geçirerek uygulama sorumludur.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Yazma iletiye stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Yazma iletiye stdout.

Rapor bir, iki veya üç hedefleri veya herhangi bir hedef için hiç gönderilebilir.Rapor modu veya modları ve rapor dosyası belirtilmesi hakkında daha fazla bilgi için _CrtSetReportMode ve _CrtSetReportFile işlevleri.İşlevleri raporlama ve hata ayıklama makro kullanma hakkında daha fazla bilgi için Raporlama Makroları.

Uygulamanız tarafından sağlanan değerinden daha fazla esneklik gerekip gerekmediğini _CrtDbgReport ve _CrtDbgReportW, kendi raporlama işlevi yazma ve bunu kullanarak mekanizması raporlama C çalışma zamanı kitaplığı içine takma _CrtSetReportHook işlev.

Gereksinimler

Yordam

Gerekli başlık

_CrtDbgReport

< crtdbg.h >

_CrtDbgReportW

< crtdbg.h >

_CrtDbgReportve _CrtDbgReportW Microsoft uzantıları.Daha fazla bilgi için Uyumluluk.

Kitaplıklar

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

Örnek

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

int main(int argc, char *argv[]) {
#ifdef _DEBUG
   _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, argv[0], NULL);
#endif
}

Bakın crt_dbg2 rapor işlev değiştirmek nasıl bir örneği.

.NET Framework Eşdeğeri

Ayrıca bkz.

Başvuru

Hata Ayıklama Yordamları

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG