Aracılığıyla paylaş


_CrtDbgReport, _CrtDbgReportW

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

Sözdizimi

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_ERRORve _CRT_ASSERT.

filename
Onay/raporun oluştuğu kaynak dosyanın adına işaretçi veya NULL.

lineNumber
Onay/raporun oluştuğu kaynak dosyadaki satır numarası veya NULL.

moduleName
Onay veya raporun oluştuğu modülün (.exe veya .dll) adına işaretçi.

format
Kullanıcı iletisini oluşturmak için kullanılan biçim denetimi dizesi işaretçisi.

argument
tarafından formatkullanılan isteğe bağlı değiştirme bağımsız değişkenleri.

Dönüş değeri

Tüm rapor hedefleri _CrtDbgReport için ve _CrtDbgReportW hata oluşursa -1, hatayla karşılaşılmadıysa 0 döndürür. Ancak, rapor hedefi bir hata ayıklama iletisi penceresi olduğunda ve kullanıcı Yeniden Dene düğmesini seçtiğinde, bu işlevler 1 döndürür. Kullanıcı hata ayıklama iletisi penceresinde Durdur düğmesini seçerse, bu işlevler hemen durdurulup bir değer döndürmez.

hata ayıklama raporlarını oluşturmak için ,_RPTFhata ayıklama makroları çağrısı_CrtDbgReport._RPT Bu makroların , ve _RPTFWile _ASSERTE_ASSERT_RPTW birlikte geniş karakterli sürümleri, hata ayıklama raporlarını oluşturmak için kullanır._CrtDbgReportW 1 olduğunda _CrtDbgReport veya _CrtDbgReportW döndürdiğinde, tam zamanında (JIT) hata ayıklama etkinleştirildiyse, bu makrolar hata ayıklayıcıyı başlatır.

Açıklamalar

_CrtDbgReport hata _CrtDbgReportW ayıklama raporunu üç farklı hedefe gönderebilir: hata ayıklama raporu dosyası, hata ayıklama izleyicisi (Visual Studio hata ayıklayıcısı) veya hata ayıklama iletisi penceresi. Her rapor türünün hedefini veya hedeflerini belirtmek için iki yapılandırma işlevi _CrtSetReportMode ve _CrtSetReportFilekullanılır. Bu işlevler, her rapor türü için raporlama hedefinin veya hedeflerinin ayrı olarak denetlenebilmesini sağlar. Örneğin, bir reportType_CRT_WARN hata ayıklama izleyicisine yalnızca bir hata ayıklama izleyicisine, bir reportType hata _CRT_ASSERT ayıklama iletisi penceresine ve kullanıcı tanımlı rapor dosyasına gider.

_CrtDbgReportW , öğesinin geniş karakterli sürümüdür _CrtDbgReport. Tüm çıkış ve dize parametreleri geniş karakterli dizelerdedir; aksi takdirde tek baytlık karakter sürümüyle aynıdır.

_CrtDbgReportve _CrtDbgReportW veya wprintf işlevleri tarafından printf tanımlanan kuralları kullanarak bağımsız değişkenleri dizeye format değiştirerek argument[n] hata ayıklama raporu için kullanıcı iletisini oluşturun. Bu işlevler daha sonra hata ayıklama raporunu oluşturur ve için reportTypetanımlanan geçerli rapor modlarını ve dosyasını temel alarak hedefi veya hedefleri belirler. Rapor bir hata ayıklama iletisi penceresine gönderildiğinde, filename, lineNumberve moduleName penceresinde görüntülenen bilgilere eklenir.

Aşağıdaki tabloda, rapor modu veya modları ve dosyası için kullanılabilir seçenekler ile ve _CrtDbgReportW'in _CrtDbgReport elde edilen davranışı listeleniyor. Bu seçenekler crtdbg.h> dosyasında <bit bayrakları olarak tanımlanır.

Rapor modu Rapor dosyası _CrtDbgReport, _CrtDbgReportW davranış
_CRTDBG_MODE_DEBUG Geçerli değil Windows OutputDebugString API kullanarak ileti yazar.
_CRTDBG_MODE_WNDW Geçerli değil İptal, Yeniden Dene ve Yoksay düğmeleriyle birlikte iletiyi görüntülemek üzere ileti kutusu oluşturmak için Windows MessageBox API'sini çağırır. Kullanıcı Durdur'u _CrtDbgReportseçerse veya _CrtDbgReport hemen durdurursa. Kullanıcı Yeniden Dene'yi seçerse 1 döndürür. Kullanıcı Yoksay'ı seçerse yürütme devam eder ve _CrtDbgReport_CrtDbgReportW 0 döndürür. Bir hata koşulu mevcut olduğunda Yoksay'ın seçilmesi genellikle tanımsız davranışla sonuçlanır.
_CRTDBG_MODE_FILE __HFILE Windows WriteFile API'sini kullanarak kullanıcı tarafından sağlanan HANDLEöğesine ileti yazar ve dosya tanıtıcısının geçerliliğini doğrulamaz; uygulama rapor dosyasını açmak ve geçerli bir dosya tanıtıcısı geçirmekten sorumludur.
_CRTDBG_MODE_FILE _CRTDBG_FILE_STDERR İletiyi öğesine stderryazar.
_CRTDBG_MODE_FILE _CRTDBG_FILE_STDOUT İletiyi öğesine stdoutyazar.

Rapor bir, iki veya üç hedefe veya hiç hedefe gönderilebilir. Rapor modunu veya modlarını ve rapor dosyasını belirtme hakkında daha fazla bilgi için ve işlevlerine _CrtSetReportMode_CrtSetReportFile bakın. Hata ayıklama makrolarını ve raporlama işlevlerini kullanma hakkında daha fazla bilgi için bkz . Raporlama için makrolar.

Uygulamanızın ve _CrtDbgReportWtarafından _CrtDbgReport sağlanandan daha fazla esnekliğe ihtiyacı varsa, kendi raporlama işlevinizi yazabilir ve işlevini kullanarak C çalışma zamanı kitaplığı raporlama mekanizmasına _CrtSetReportHook bağlayabilirsiniz.

Gereksinimler

Yordam Gerekli başlık
_CrtDbgReport <Crtdbg>
_CrtDbgReportW <Crtdbg>

_CrtDbgReport ve _CrtDbgReportW Microsoft uzantılarıdır. Daha fazla bilgi için bkz . Uyumluluk.

Kitaplıklar

Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.

Örnek

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

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

Rapor işlevini değiştirme örneği için bkz crt_dbg2 .

Ayrıca bkz.

Hata ayıklama yordamları
_CrtSetReportMode
_CrtSetReportFile
printf, _printf_l, wprintf, _wprintf_l
_DEBUG