Microsoft Foundation Class Library programlarınızın daha kolay hata ayıklama yapmak birçok Tanı hizmetleri sağlamaz. Bu teşhis Hizmetleri, makroları ve Tahsisatlar, çalıştırma süresinde nesnelerin içeriğini dökümü ve hata ayıklama iletilerini çalışma zamanında yazdırmayı programınızın bellek izlemenize olanak küresel işlevler içerir. Makroları ve Tanı hizmetleri küresel işlevler aşağıdaki kategorilere gruplandırılmıştır:
Bu makrolar ve işlevleri mfc Debug ve yayın sürümlerinde CObject türetilmiş tüm sınıflar için kullanılabilir. Ancak, tüm debug_new ve doğrulama dışında hiçbir sürümünde yapmak.
Hata ayıklama Kitaplığı'nda, tüm ayrılmış bellek blokları "bekçi bayt." serisiyle getirmekte Bu bayt bir serseri bellek yazma tarafından rahatsız varsa, tanılama yordamları sorun bildirebilirsiniz. Satır eklerseniz
# define yeni debug_new
uygulama dosyanızdaki tüm aramalar için Yeni bellek ayırma gerçekleştiği dosya ismi ve satır numarasını depolar. CMemoryState::DumpAllObjectsSince işlevi bellek sızıntılarını belirlemek izin bu ilave bilgiler, görüntüler. Ayrıca tanılama çıktı hakkında ek bilgi için CDumpContext sınıfı bakın.
Ayrıca c Çalışma Zamanı Kütüphanesi de kendi uygulamalarında hata ayıklamak için kullanabileceğiniz tanılama işlevleri kümesi destekler. Daha fazla bilgi için bkz: Hata ayıklama yordamları Çalıştırma Kitaplığı Başvurusu.
| ONAYLAMA İŞLEMİ | Bir ileti yazdırır ve kütüphane hata ayıklama sürümünü belirtilen ifade yanlış olarak değerlendirilirse programı iptal eder. |
| ASSERT_KINDOF | Bir nesnenin nesne belirtilen sınıf veya belirtilen sınıfından türetilmiş bir sınıf olan testler. |
| ASSERT_VALID | AssertValid üye işlevini çağırarak nesnenin iç geçerliliğini sınar; genellikle CObject geçersiz kılındı. |
| DEBUG_NEW | Bellek sızıntılarını bulmanıza yardımcı olmak için bir dosya adı ve satır numarası tüm nesne boyut hata ayıklama modunda temini. |
| İZLEME | Printfsağlar-beğenmek Kütüphane hata ayıklama sürümünü yeteneği. |
| TRACE0 | İz sürer ama benzer bir biçimde dize bağımsız değişkeni ile. |
| TRACE1 | İz sürer ama benzer bir biçimde dize ile tek bir bağımsız değişken. |
| TRACE2 | İz sürer ama benzer bir biçimde dize iki ba?ymsyz de?i?kenle. |
| TRACE3 | İz sürer ama benzer bir biçimde dize ile üç bağımsız değişken. |
| DOĞRULAYIN | assert benzer ama sürümü kütüphane yanı olarak hata ayıklama sürümünü ifade olarak değerlendirilir. |
Mfc genel teşhis değişkenleri ve işlevleri
| afxDump | Hata ayıklayıcı output penceresi veya hata ayıklama terminale CDumpContext bilgilerini gönderen global değişken. |
| afxMemDF | Hata ayıklama bellek ayırıcı davranışını denetleyen global değişken. |
| afxTraceEnabled | Genel değişkeni, etkinleştirmek veya izleme makro çıktısını devre dışı bırakmak için kullanılır. |
| afxTraceFlags | Mfc yerleşik raporlama özelliklerini etkinleştirme için kullanılan genel değişkeni. |
| AfxCheckError | Global değişken, geçirilen sınamak için kullanılan bir hata varsa ve eğer öyleyse, scode uygun hata atar. |
| AfxCheckMemory | Tüm bütünlüğünü şu anda ayrılmış bellek denetler. |
| AfxDump | Hata Ayıklayıcı ise çağrılırsa bir nesnenin durumunu ayıklarken döker. |
| AfxDumpStack | Geçerli yığın görüntüsünü oluşturur. Bu işlev her zaman statik olarak bağlı olduğu. |
| AfxEnableMemoryTracking | Bellek ve izleme kapatır. |
| AfxIsMemoryBlock | Bir bellek bloğu düzgün tahsis edilmiş doğrular. |
| AfxIsValidAddress | Bir bellek adresi aralığı program sınırları içinde olduğunu doğrular. |
| AfxIsValidString | Bir dize işaretçisi geçerli olup olmadığını belirler. |
| AfxSetAllocHook | Her bellek ayırma bir işlevi arama sağlar. |
| AfxDoForAllClasses | Tüm CObjectüzerinde belirtilen işlev gerçekleştirir-türetilmiş sınıflar, çalışma zamanı tür denetlemesi destekleyen. |
| AfxDoForAllObjects | Tüm CObjectüzerinde belirtilen işlev gerçekleştirir- Yeni ile ayrılan nesneleri elde. |