Como: Use a heap de depurar
Este tópico se aplica a:
Edição |
Visual Basic |
C# |
C++ |
Desenvolvedores Web |
---|---|---|---|---|
Express |
Somente nativo |
|||
Padrão |
Somente nativo |
|||
PRO e equipe |
Somente nativo |
Legenda de tabela:
Aplica-se |
|
Não é aplicada |
|
Comando ou comandos oculta por padrão. |
Todas sistema autônomo chamadas para heap funções, sistema autônomo malloc, free, calloc, realloc, new, e delete resolver para versões de depurar dessas funções operam a depurar heap. Quando você liberar um bloco de memória, a depurar heap automaticamente verifica a integridade dos buffers em ambos os lados da sua área alocada e emite um relatório de erros se substituindo ocorreu.
Para usar a pilha de depurar
- Vincular a compilação de depurar do seu aplicativo com uma versão de depurar de C em tempo de execução biblioteca.
Para alterar um ou mais campos de bit _crtDbgFlag e criar um novo estado para o sinalizar
De telefonar**_CrtSetDbgFlag** com o newFlag parâmetro conjunto para _CRTDBG_REPORT_FLAG (para obter o corrente _crtDbgFlag estado) e armazenar o valor retornado em uma variável temporária.
Ative os bits por OR-ing (bit a bit | símbolo) a variável temporária com as máscaras de bits correspondentes (representadas por constantes manifesto no código do aplicativo).
Desativar os outros bits AND-ing (bit a bit & símbolo) a variável com um NOT (bit a bit ~ símbolo) de máscaras de bits apropriadas.
De telefonar**_CrtSetDbgFlag** com o newFlag parâmetro definido como o valor armazenado na variável temporária para criar o novo estado para _crtDbgFlag.
Exemplo
Por exemplo, as linhas de código a seguir Ativar detecção de vazamento de automático e desativar a verificação de blocos do tipo _CRT_BLOCK:
// Get current flag
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
// Turn on leak-checking bit.
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
// Turn off CRT block checking bit.
tmpFlag &= ~_CRTDBG_CHECK_CRT_DF;
// Set flag to the new value.
_CrtSetDbgFlag( tmpFlag );