Sdílet prostřednictvím


Ladění verze funkce přidělení haldy

C Runtime library obsahuje speciální verze ladicích funkcí přidělení haldy.Tyto funkce mají stejné názvy jako vydání verze s _dbg k nim připojeny.Toto téma popisuje rozdíly mezi verzi funkce CRT a verze _dbg pomocí malloc a _malloc_dbg jako příklady.

Při _DEBUG je definován, CRT mapuje všechny MALLOC volání na _malloc_dbg.Proto není třeba přepsat pomocí kódu _malloc_dbg namísto malloc příjem dávky při ladění.

Chcete volat _malloc_dbg explicitně, ale.Volání _malloc_dbg výslovně přidány některé výhody:

  • Sledování _CLIENT_BLOCK zadejte přiřazení.

  • Ukládání souborů a řádek číslo zdroje kde došlo k žádosti o přidělení.

Pokud chcete převést vaše malloc volání na _malloc_dbg, definováním můžete získat informace o souboru zdroje _CRTDBG_MAP_ALLOC, což způsobuje, že mapy preprocesoru přímo všechna volání malloc na _malloc_dbg namísto obal kolem malloc.

Chcete-li sledovat zvláštní typy přidělení v blocích klient musí volat _malloc_dbg přímo a nastavena blockType parametr _CLIENT_BLOCK.

Při _DEBUG není definována, volání do malloc nebude narušen, volání do _malloc_dbg jsou rozhodnuty malloc, definice _CRTDBG_MAP_ALLOC je ignorována a nejsou-li součástí zdrojového souboru informace týkající se žádosti o přidělení.Protože malloc nemá parametr typu bloku, požadavky pro _CLIENT_BLOCK typů jsou považovány za standardní přidělení.

Viz také

Další zdroje

Techniky ladění CRT