Compartilhar via


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

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Pro, Premium e Ultimate

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

A biblioteca de tempo de execução c contém as versões de depuração especiais 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 lançamento de uma função CRT e a versão _dbg, usando malloc e _malloc_dbg como exemplos.

Quando _DEBUG é definida, a CRT mapeia todos os malloc chamadas para _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 tem alguns benefícios adicionais:

  • Controle _CLIENT_BLOCK alocações de tipo.

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

Se não desejar converter seu malloc chamadas para _malloc_dbg, você poderá obter as informações do arquivo de origem definindo _CRTDBG_MAP_ALLOC, que faz com que o pré-processador diretamente mapear todas as chamadas para malloc para _malloc_dbg em vez de depender de um wrapper em torno de malloc.

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

Quando _ Debug não estiver definido, chamadas de malloc não incomodado, são chamadas para _malloc_dbg são resolvidos para malloc, a definição de _CRTDBG_MAP_ALLOC é ignorado, e informações de arquivo de origem pertencentes a 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