Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La bibliothèque CRT (C Runtime) contient des versions de débogage spéciales des fonctions d’allocation de tas. Ces fonctions ont les mêmes noms que les versions release avec _dbg les ajouts. Cet article décrit les différences entre la version Release d’une fonction CRT et la _dbg version, en utilisant malloc et _malloc_dbg en tant qu’exemples.
Comportement dans les builds de débogage
Lorsqu’il _DEBUG est défini, le CRT mappe tous les malloc appels à _malloc_dbg. Par conséquent, vous n’avez pas besoin de réécrire votre code _malloc_dbg au lieu de recevoir les avantages lors du malloc débogage.
Vous pouvez cependant appeler _malloc_dbg de façon explicite. Un appel explicite à _malloc_dbg présente en outre les avantages suivants :
suivi des allocations de type
_CLIENT_BLOCK;stockage du fichier source et du numéro de la ligne où la demande d'allocation a été effectuée.
Si vous ne souhaitez pas convertir vos malloc appels _malloc_dbgen , vous pouvez obtenir les informations du fichier source en définissant _CRTDBG_MAP_ALLOC, ce qui entraîne le mappage direct de tous les appels à malloc _malloc_dbg tous les appels au lieu de s’appuyer sur un wrapper autour mallocde .
Pour effectuer le suivi des différents types d'allocations dans les blocs client, vous devez appeler _malloc_dbg directement et affecter au paramètre blockType la valeur _CLIENT_BLOCK.
Comportement dans les builds sans débogage
Lorsqu’il _DEBUG n’est pas défini, les appels à malloc ne sont pas dérangés, les appels à _malloc_dbg résoudre sont résolus mallocen , la définition d’est _CRTDBG_MAP_ALLOC ignorée et les informations de fichier source relatives à la demande d’allocation ne sont pas fournies. Comme malloc n’a pas de paramètre de type de bloc, les demandes de _CLIENT_BLOCK types sont traitées comme des allocations standard.