Serviços de diagnóstico
A biblioteca de classes do Microsoft fornece muitos serviços de diagnóstico que facilitam depurar seus programas. Esses serviços de diagnóstico incluem macros e as funções globais que permitem rastrear as alocações de memória do programa, despejam o conteúdo dos objetos durante o tempo de execução, e aparecem em mensagens de depuração durante o tempo de execução. Macros e as funções globais para serviços de diagnóstico são agrupados nas seguintes categorias:
Macros de diagnóstico gerais
Funções e variáveis de diagnóstico gerais
Funções de diagnóstico de objeto
Esses macros e funções estão disponíveis para todas as classes derivadas de CObject na depuração e nas versões de inicialização MFC. Porém, todos exceto DEBUG_NEW e VERIFY não faz nada na versão lançada.
Na biblioteca de depuração, todos os blocos de memória alocado são suportados com uma série de “bytes de protetor”. Se esses bytes são perturbados por uma gravação usuário errôneo de memória, as rotinas de diagnóstico podem relatar um problema. Se você incluir a linha:
#define new DEBUG_NEW
no arquivo de implementação, todas as chamadas a new armazenarão o nome do arquivo e o número da linha onde ocorreu a alocação de memória. A função CMemoryState::DumpAllObjectsSince exibirá essas informações adicionais, permitindo que você identificar possíveis vazamentos de memória. Consulte também a classe CDumpContext para obter informações adicionais sobre saídas de diagnóstico.
Além disso, a biblioteca de tempo de execução C também oferece suporte a um conjunto de funções de diagnóstico que você pode usar para depurar seus aplicativos. Para obter mais informações, consulte Rotinas de depuração na referência da biblioteca de tempo de execução.
Macros de diagnóstico gerais de MFC
Imprime uma mensagem e nulos no programa se a expressão especificada for avaliada como Falso na versão de depuração de biblioteca. |
|
Teste que um objeto é um objeto da classe especificada ou de uma classe derivada da classe especificada. |
|
Testa a validade interna de um objeto chamando a função de membro de AssertValid ; substituído normalmente de CObject. |
|
Fornece um nome de arquivo e um número de linha para todas as alocações do objeto no modo de depuração para ajudar a localizar possíveis vazamentos de memória. |
|
Semelhante a DECLARAR mas não testa o valor da expressão; útil para o código que deverá ser executado somente no modo de depuração. |
|
Fornece printf- como o recurso na versão de depuração de biblioteca. |
|
Semelhante a DECLARAR mas avalia a expressão na versão lançada da biblioteca assim como a versão de depuração. |
Variáveis de diagnóstico gerais e funções MFC
A variável global que envia as informações de CDumpContext à janela saída do depurador ou ao terminal de depuração. |
|
A variável global que controla o comportamento do alocador de memória de depuração. |
|
A variável global usado para testar SCODE passado para ver se é um erro e, nesse caso, ele gerencie o erro apropriado. |
|
Verifica a integridade de qualquer memória alocada atualmente. |
|
Se for chamado quando o depurador, despejos o estado de um objeto na depuração. |
|
Gerencia uma imagem de pilhas atual. Essa função é vinculada sempre estaticamente. |
|
Permite despejo de vazamento de memória. |
|
Controle de memória de voltas ativa e desativa. |
|
Verifica se um bloco de memória está atribuída corretamente. |
|
Verifica se um intervalo de endereço de memória está dentro dos limites do programa. |
|
Determina se um ponteiro para uma cadeia de caracteres é válido. |
|
Habilita a chamada de uma função em cada alocação de memória. |
Funções de diagnóstico do objeto de MFC
Executa uma função especificada em qualquer CObject- classes derivadas que dão suporte à verificação de tipo em tempo de execução. |
|
Executa uma função especificada em qualquer CObject- os objetos derivados que foram atribuídos com new. |