Compartilhar via


Versões de depuração de funções de alocação de Heap

A biblioteca de tempo de execução c contém especiais versões de depuração das funções de alocação de heap.Essas funções têm os mesmos nomes que o lançamento de versões com _dbg acrescentada a elas.Este tópico descreve as diferenças entre a versão de uma função CRT e a versão de _dbg usando malloc e _malloc_dbg como exemplos.

Quando DEBUG é definida, a CRT mapeia todas as malloc chama _malloc_dbg.Portanto, você não precisa reescrever o seu código usando _malloc_dbg em vez de malloc para receber os benefícios durante a depuração.

Talvez você queira chamar _malloc_dbg explicitamente, entretanto.Chamando _malloc_dbg explicitamente alguns adicionou benefícios:

  • Controle _CLIENT_BLOCK digite alocações.

  • Armazenar o número de arquivo e linha de origem onde ocorreu a solicitação de alocação.

Se não desejar converter seu malloc chama _malloc_dbg, você pode obter as informações do arquivo de origem definindo _CRTDBG_MAP_ALLOC, que faz com que o mapa de pré-processador diretamente para todas as chamadas para malloc para _malloc_dbg em vez de depender de um invólucro malloc.

Para controlar os tipos separados de alocações em blocos de cliente, você deve chamar _malloc_dbg diretamente e definir o blockType parâmetro para _CLIENT_BLOCK.

Quando Debug não for definido, chamadas para malloc não são afetados, chamadas de _malloc_dbg são resolvidos para malloc, a definição de _CRTDBG_MAP_ALLOC será ignorado e informações de arquivo de origem referentes à solicitação de alocação não são fornecidas.Porque malloc não tem um parâmetro de tipo de bloco, solicitações de _CLIENT_BLOCK tipos são tratados como alocações padrão.

Consulte também

Outros recursos

Técnicas de depuração CRT