_CrtSetBreakAlloc
Belirtilen nesne ayırma sipariş numarası (yalnızca hata ayıklama sürümü) bir kesme noktası ayarlar.
long _CrtSetBreakAlloc(
long lBreakAlloc
);
Parametreler
- lBreakAlloc
Kesme noktası ayarlamak istediğiniz tahsisat sipariş numarası.
Dönüş Değeri
Bir kesme vardı önceki nesne ayırma sipariş numarasını döndürür.
Notlar
_CrtSetBreakAllocbellek ayırma belirli bir noktada bölme ve geri izleme isteği başlangıcı olarak bellek sızıntı algılaması gerçekleştirmek bir uygulama sağlar.İşlev öbeğe ayrıldı, bellek bloğu atanan ardışık nesne ayırma sipariş numarasını kullanır.Zaman _debug tanımlı değilse, çağıran için _CrtSetBreakAlloc ön-işleme sırasında kaldırılır.
Nesne ayırma sipariş numarası depolanan lRequest , alan _CrtMemBlockHeader Crtdbg.h içinde tanımlanan yapı.Hata ayıklama dökümü işlevlerinden birini bir bellek bloğu hakkında bilgi bildirildiğinde, bu sayı 36} gibi kaşlı ayraçlar içine alınır.
Hakkında daha fazla bilgi için _CrtSetBreakAlloc diğer bellek yönetimi işlevleri ile kullanılabilir, bkz: Yığın ayırma istekleri izleme.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_CrtSetBreakAlloc |
<crtdbg.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Kitaplıkları
Hata ayıklama sürümlerini 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);
_crtBreakAlloc = 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
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.