Como: Usar a pilha de depuração
This topic applies to:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Native only |
||||
Pro, Premium e Ultimate |
Native only |
Todas as chamadas de funções de heap como malloc, free, calloc, realloc, new, e delete resolver para versões de depuração dessas funções que operam na pilha de depuração. Quando você libera um bloco de memória, a pilha de depuração 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 depuração
- Vincule a compilação de depuração do seu aplicativo com uma versão de depuração da biblioteca de tempo de execução C.
Para alterar um ou mais campos de bits _crtDbgFlag e crie um novo estado para o sinalizador
Chame _CrtSetDbgFlag com o newFlag parâmetro definido como _CRTDBG_REPORT_FLAG (para obter o atual _crtDbgFlag estado) e armazenar o valor retornado na variável temporária.
Ativar qualquer bits por OR- ing (bit a bit | símbolo) variável temporária com as máscaras de bits correspondentes (representadas pelas constantes de manifesto no código do aplicativo).
Desativar outros bits por AND- ing (bit a bit & símbolo) a variável com um NOT (bit a bit ~ símbolo) do apropriado bitmasks.
Chame _CrtSetDbgFlag com o newFlag parâmetro definido como o valor armazenado na variável temporária para criar o novo estado de _crtDbgFlag.
Exemplo
Por exemplo, as seguintes linhas de código ativar a detecção automática de vazamento 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 );