Aracılığıyla paylaş


Öbek atama işlevleri hata ayıklama sürümleri

C çalışma zamanı (CRT) kitaplığı, yığın ayırma işlevlerinin özel Hata Ayıklama sürümlerini içerir. Bu işlevler, sürüm sürümlerine ekli sürümlerle _dbg aynı adlara sahiptir. Bu makalede, örnek olarak ve _malloc_dbg kullanılarak malloc bir CRT işlevinin Yayın sürümü ile _dbg sürüm arasındaki farklar açıklanmaktadır.

Hata ayıklama derlemelerindeki davranış

Tanımlandığında _DEBUG , CRT tüm malloc çağrıları ile _malloc_dbgeşler. Bu nedenle, hata ayıklarken avantajları elde etmek için yerine malloc kullanarak _malloc_dbg kodunuzu yeniden yazmanız gerekmez.

Ancak açıkça çağırmak _malloc_dbg isteyebilirsiniz. Açıkça çağırmanın _malloc_dbg bazı ek avantajları vardır:

  • İzleme _CLIENT_BLOCK türü ayırmaları.

  • Kaynak dosyayı ve satır numarasını ayırma isteğinin gerçekleştiği yerde depolama.

Çağrılarınızı malloc _malloc_dbgöğesine dönüştürmek istemiyorsanız, ön işlemcinin çevresinde mallocbir sarmalayıcı kullanmak yerine tüm çağrıları doğrudan ile malloc eşlemesine _malloc_dbg neden olan öğesini tanımlayarak _CRTDBG_MAP_ALLOCkaynak dosya bilgilerini alabilirsiniz.

İstemci bloklarındaki ayrı ayırma türlerini izlemek için, doğrudan çağırmanız _malloc_dbg ve parametresini blockType olarak _CLIENT_BLOCKayarlamanız gerekir.

Hata ayıklama olmayan derlemelerde davranış

Tanımlanmadığında _DEBUG , çağrısı malloc rahatsız olmaz, çağrısına _malloc_dbg çözümlenir malloc, tanımı _CRTDBG_MAP_ALLOC yoksayılır ve ayırma isteğiyle ilgili kaynak dosya bilgileri sağlanmaz. malloc Blok türü parametresi olmadığından, tür istekleri _CLIENT_BLOCK standart ayırmalar olarak kabul edilir.

Ayrıca bkz.

CRT hata ayıklama teknikleri