Hata ayıklama yordamları

C çalışma zamanı kitaplığının hata ayıklama sürümü, programlarda hata ayıklamayı kolaylaştıran ve geliştiricilerin şunları yapmasına olanak sağlayan birçok tanılama hizmeti sağlar:

  • Hata ayıklama sırasında doğrudan çalışma zamanı işlevlerine adımlayın

  • Onayları, hataları ve özel durumları çözme

  • Yığın ayırmalarını izleme ve bellek sızıntılarını önleme

  • Hata ayıklama iletilerini kullanıcıya bildirme

C çalışma zamanı kitaplığı yordamlarının sürümlerinde hata ayıklama

Bu yordamları kullanmak için bayrağı tanımlanmalıdır _DEBUG . Bu yordamların tümü, bir uygulamanın perakende derlemesinde hiçbir şey yapmaz. Yeni hata ayıklama yordamlarını kullanma hakkında daha fazla bilgi için bkz . CRT hata ayıklama teknikleri.

Yordam Kullanma
_ASSERT Bir ifadeyi değerlendirme ve sonuç olduğunda hata ayıklama raporu oluşturma FALSE
_ASSERTE gibi _ASSERT, ancak oluşturulan rapordaki başarısız ifadeyi içerir
_CrtCheckMemory Hata ayıklama yığınında ayrılan bellek bloklarının bütünlüğünü onaylayın
_CrtDbgBreak Bir kesme noktası ayarlar.
_CrtDbgReport, _CrtDbgReportW Kullanıcı iletisiyle hata ayıklama raporu oluşturma ve raporu üç olası hedefe gönderme
_CrtDoForAllClientObjects Yığındaki tüm _CLIENT_BLOCK türler için uygulama tarafından sağlanan bir işlev çağırma
_CrtDumpMemoryLeaks Önemli bir bellek sızıntısı oluştuğunda tüm bellek bloklarını hata ayıklama yığınına dökümü
_CrtIsMemoryBlock Belirtilen bellek bloğunun yerel yığın içinde yer aldığını ve geçerli bir hata ayıklama öbeği türü tanımlayıcısına sahip olduğunu doğrulayın
_CrtIsValidHeapPointer Belirtilen işaretçinin yerel yığında olduğunu doğrular
_CrtIsValidPointer Belirtilen bellek aralığının okuma ve yazma için geçerli olduğunu doğrulayın
_CrtMemCheckpoint Hata ayıklama yığınının geçerli durumunu alın ve uygulama tarafından sağlanan _CrtMemState bir yapıda depolayın
_CrtMemDifference Önemli farklar için iki bellek durumlarını karşılaştırın ve sonuçları döndürin
_CrtMemDumpAllObjectsSince Belirtilen denetim noktası alındığından veya program yürütmenin başlangıcından itibaren yığındaki nesneler hakkında bilgi dökümü
_CrtMemDumpStatistics Kullanıcı tarafından okunabilir bir formda belirtilen bellek durumu için hata ayıklama üst bilgi dökümü
_CrtReportBlockType Belirli bir hata ayıklama yığını blok işaretçisiyle ilişkili blok türünü/alt türünü döndürür.
_CrtSetAllocHook İstemci tanımlı ayırma işlevini C çalışma zamanı hata ayıklama bellek ayırma işlemine bağlayarak yükleyin
_CrtSetBreakAlloc Belirtilen nesne ayırma sipariş numarasında kesme noktası ayarlama
_CrtSetDbgFlag Hata ayıklama yığını yöneticisinin _crtDbgFlag ayırma davranışını denetlemek için bayrağın durumunu alma veya değiştirme
_CrtSetDumpClient Döküm türü bellek blokları için _CLIENT_BLOCK her hata ayıklama dökümü işlevi çağrıldığında çağrılan uygulama tanımlı bir işlev yükleyin
_CrtSetReportFile Tarafından belirli bir rapor türü için hedef olarak kullanılacak dosya veya akışı tanımlama _CrtDbgReport
_CrtSetReportHook İstemci tanımlı raporlama işlevini C çalışma zamanı hata ayıklama raporlama işlemine bağlayarak yükleyin
_CrtSetReportHook2, _CrtSetReportHookW2 İstemci tanımlı raporlama işlevini C çalışma zamanı hata ayıklama raporlama işlemine bağlayarak yükler veya kaldırır.
_CrtSetReportMode Tarafından oluşturulan belirli bir rapor türü için genel hedefleri belirtin _CrtDbgReport
_RPT[0,1,2,3,4] Bir biçim dizesi ve değişken sayıda bağımsız değişkenle çağırarak _CrtDbgReport hata ayıklama raporu oluşturarak uygulamanın ilerleme durumunu izleyin. Kaynak dosya ve satır numarası bilgisi sağlamaz.
_RPTF[0,1,2,3,4] Makrolara _RPTn benzer, ancak rapor isteğinin kaynak dosya adını ve satır numarasını sağlar
_calloc_dbg Bir hata ayıklama üst bilgisi için ek alan içeren yığında belirtilen sayıda bellek bloğu ayırma ve arabelleklerin üzerine yazma
_expand_dbg Öbekte belirtilen bellek bloğunu genişleterek veya daraltarak yeniden boyutlandırma
_free_dbg Yığındaki bir bellek bloğunu serbest bırakın
_fullpath_dbg, _wfullpath_dbg Bellek ayırmak için kullanarak _malloc_dbg belirtilen göreli yol adı için mutlak veya tam yol adı oluşturun.
_getcwd_dbg, _wgetcwd_dbg Bellek ayırmak için kullanarak _malloc_dbg geçerli çalışma dizinini alın.
_malloc_dbg Yığında hata ayıklama üst bilgisi için fazladan alan içeren bir bellek bloğu ayırma ve arabelleklerin üzerine yazma
_msize_dbg Yığındaki bir bellek bloğunun boyutunu hesaplama
_realloc_dbg Bloğu taşıyarak ve/veya yeniden boyutlandırarak yığında belirtilen bellek bloğunu yeniden ayırma
_strdup_dbg, _wcsdup_dbg Bellek ayırmak için kullanarak _malloc_dbg bir dizeyi yineler.
_tempnam_dbg, _wtempnam_dbg Bellek ayırmak için kullanarak _malloc_dbg geçici dosyalar oluşturmak için kullanabileceğiniz adlar oluşturun.

Kaynak kod formunda bulunmayan C çalışma zamanı yordamları

Hata ayıklayıcı, hata ayıklama işlemi sırasında C çalışma zamanı yordamlarının çoğu için kaynak kodda adım adım ilerleyebilmek için kullanılabilir. Ancak Microsoft, bazı teknolojilerin özel olduğunu düşünür ve bu nedenle bu yordamların bir alt kümesi için kaynak kodu sağlamaz. Bu yordamların çoğu özel durum işleme veya kayan nokta işleme gruplarına aittir, ancak birkaçı da dahil edilir. Aşağıdaki tabloda bu yordamlar listelemektedir.

Ve yordamlarının çoğunda kaynak kodu kullanılabilse de, kaynak kodunun printf scanf sağlanmayan başka bir yordama iç çağrı yapar.

Uygulamanın hata ayıklama derlemesinde farklı davranan yordamlar

Bazı C çalışma zamanı işlevleri ve C++ işleçleri, bir uygulamanın hata ayıklama derlemesinden çağrıldığında farklı davranır. (Bayrağı tanımlayarak _DEBUG veya C çalışma zamanı kitaplığının hata ayıklama sürümüyle bağlantı kurarak uygulamanın hata ayıklama derlemesini oluşturabilirsiniz.) Davranış farklılıkları genellikle hata ayıklama işlemini desteklemek için yordam tarafından sağlanan ek özelliklerden veya bilgilerden oluşur. Aşağıdaki tabloda bu yordamlar listelemektedir.

C abort yordamı

C assert yordamı

C++ delete işleci

C++ new işleci

Ayrıca bkz.

Kategoriye göre Evrensel C çalışma zamanı yordamları
Çalışma zamanı hata denetimi