_CrtSetBreakAlloc
Belirtilen nesne ayırma sıra numarası (yalnızca hata ayıklama sürümü) üzerinde bir kesme noktası ayarlar.
long _CrtSetBreakAlloc( long lBreakAlloc );
Parametreler
- lBreakAlloc
Kesme noktası ayarlanacak ayırma sıra numarası.
Dönüş Değeri
Bir kesme değişen önceki nesne ayırma sıra numarası döndürür.
Notlar
_CrtSetBreakAllocbellek ayırma, belirli bir noktada kesme ve geri isteğin başlangıç noktasının için izleme tarafından bellek sızıntısı algılama gerçekleştirmek bir uygulama sağlar.Bellek bloğuna öbeğe ayrıldı olduğunda atanan sıralı nesne ayırma sıra numarası işlevini kullanıyor.Zaman _DEBUG tanımlı değil, çağrılar _CrtSetBreakAlloc ön işleme sırasında kaldırılır.
Nesne ayırma sıra numarası içinde depolanan lRequest alanını _CrtMemBlockHeader yapısı, Crtdbg.h içinde tanımlanan.Bellek bloğu hakkında bilgi bir hata ayıklama dökümü işlevlerin bildirdiğinde, bu sayı gibi {36} küme ayraçları içine alınır.
Hakkında daha fazla bilgi için _CrtSetBreakAlloc diğer bellek yönetim işlevleri ile kullanılabilmesi için bkz yığın ayırma istekleri izleme.Nasıl bellek blokları ayrılan, başlatılır ve temel öbek hata ayıklama sürümünü yönetilen hakkında daha fazla bilgi için CRT Hata Ayıklama Öbeği Ayrıntıları.
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_CrtSetBreakAlloc |
< crtdbg.h > |
Uyumluluk daha fazla bilgi için bkz: Uyumluluk giriş.
Kitaplıklar
Hata ayıklama sürümleri C çalışma zamanı kitaplıkları yalnızca.
Örnek
// crt_setbrkal.c
// compile with: -D_DEBUG /MTd -Od -Zi -W3 /c /link -verbose:lib -debug
/*
* In this program, a call is made to the _CrtSetBreakAlloc routine
* to verify that the debugger halts program execution when it reaches
* a specified allocation number.
*/
#include <malloc.h>
#include <crtdbg.h>
int main( )
{
long allocReqNum;
char *my_pointer;
/*
* Allocate "my_pointer" for the first
* time and ensure that it gets allocated correctly
*/
my_pointer = malloc(10);
_CrtIsMemoryBlock(my_pointer, 10, &allocReqNum, NULL, NULL);
/*
* Set a breakpoint on the allocation request
* number for "my_pointer"
*/
_CrtSetBreakAlloc(allocReqNum+2);
/*
* Alternate freeing and reallocating "my_pointer"
* to verify that the debugger halts program execution
* when it reaches the allocation request
*/
free(my_pointer);
my_pointer = malloc(10);
free(my_pointer);
my_pointer = malloc(10);
free(my_pointer);
}
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için Platform çağırma örnekler.