_CrtDumpMemoryLeaks
Bellek sızıntısı oluştuğunda hata ayıklama yığınındaki tüm bellek bloklarını döküm eder (yalnızca hata ayıklama sürümü).
Sözdizimi
int _CrtDumpMemoryLeaks( void );
Dönüş değeri
_CrtDumpMemoryLeaks
bir bellek sızıntısı bulunursa döndürür TRUE
. Aksi takdirde işlevi döndürür FALSE
.
Açıklamalar
İşlev, _CrtDumpMemoryLeaks
program yürütmenin başlangıcından bu yana bellek sızıntısı olup olmadığını belirler. Bir sızıntı bulunduğunda, yığındaki tüm nesnelerin hata ayıklama üst bilgisi kullanıcı tarafından okunabilir bir forma atılır. Tanımlanmadığında _DEBUG
, çağrısı _CrtDumpMemoryLeaks
ön işleme sırasında kaldırılır.
_CrtDumpMemoryLeaks
uygulama tarafından ayrılan tüm belleğin boşaltıldığını doğrulamak için genellikle program yürütmesinin sonunda çağrılır. İşlev, işlevi kullanılarak bayrağın _CRTDBG_LEAK_CHECK_DF
bit alanı _crtDbgFlag
açılarak program sonlandırma sırasında _CrtSetDbgFlag
otomatik olarak çağrılabilir.
_CrtDumpMemoryLeaks
yığınının geçerli durumunu almak için çağrılar _CrtMemCheckpoint
ve ardından serbest bırakılmış bloklar için durumu tarar. Seyrek bir blokla karşılaşıldığında, _CrtDumpMemoryLeaks
program yürütmenin başlangıcından itibaren yığında ayrılan tüm nesneler için döküm bilgilerine çağrır _CrtMemDumpAllObjectsSince
.
Varsayılan olarak, iç C çalışma zamanı blokları (_CRT_BLOCK
) bellek dökümü işlemlerine dahil değildir. _CrtSetDbgFlag
işlevi, bu blokları sızıntı algılama işlemine dahil etmek için bitini _crtDbgFlag
açmak _CRTDBG_CHECK_CRT_DF
için kullanılabilir.
Yığın durumu işlevleri ve _CrtMemState
yapısı hakkında daha fazla bilgi için bkz . Yığın durumu raporlama işlevleri. Temel yığının hata ayıklama sürümünde bellek bloklarının nasıl ayrıldığı, başlatıldığı ve yönetildiği hakkında daha fazla bilgi için bkz . CRT hata ayıklama yığını ayrıntıları.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Kitaplıklar
Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.
Örnek
nasıl kullanılacağına _CrtDumpMemoryLeaks
ilişkin bir örnek için bkz crt_dbg1
. .