Serviços de diagnóstico
A biblioteca Microsoft Foundation Class fornece muitos serviços de diagnóstico que tornam a depuração de programas mais fácil.Esses serviços de diagnóstico incluem macros e funções globais que permitem controlar a memória do programa alocações, despejar o conteúdo de objetos de tempo de execução e imprimir mensagens de depuração durante o tempo de execução.Macros e funções globais para serviços de diagnóstico são agrupadas nas seguintes categorias:
Macros de diagnóstico gerais
Variáveis e funções de diagnóstico gerais
Funções de diagnóstico de objeto
Essas funções e macros estão disponíveis para todas as classes derivadas de CObject nas versões Debug e Release do MFC.No entanto, todas exceto DEBUG_NEW e Verificar não fazer nada na versão de lançamento.
Na biblioteca de depuração, todos os blocos de memória alocada são bracketed com uma série de "bytes de guarda". Se esses bytes são interrompidos por uma gravação de memória errôneo, 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 nova armazenará o número de linha e o nome do arquivo onde ocorreu a alocação de memória.A função CMemoryState::DumpAllObjectsSince exibirá essas informações extras, permitindo que você identificar vazamentos de memória.Consulte também a classe CDumpContext para obter informações adicionais sobre a saída de diagnóstico.
Além disso, a biblioteca de tempo de execução c também suporta um conjunto de funções de diagnóstico, que você pode usar para depurar seus aplicativos.Para obter mais informações, consulte Depurar rotinas na referência de biblioteca de tempo de execução.
Macros de diagnóstico geral MFC
Imprime uma mensagem e em seguida, anular o programa se a expressão especificada for avaliada como FALSE na versão de depuração da biblioteca. |
|
Testes que um objeto é um objeto da classe especificada ou de uma classe derivada da classe especificada. |
|
Testa a validade interna de um objeto chamando seu AssertValid função de membro; normalmente substituído de CObject. |
|
Fornece um nome de arquivo e linha número para todas as alocações de objeto no modo de depuração para ajudar a localizar vazamentos de memória. |
|
Semelhante a ASSERT , mas não testa o valor da expressão; útil para código que deve ser executado somente no modo de depuração. |
|
Fornece printf-como recurso na versão de depuração da biblioteca. |
|
Semelhante a ASSERT , mas avalia a expressão na versão da biblioteca, bem como na versão de depuração. |
MFC geral diagnóstico variáveis e funções
Variável global que envia CDumpContext informações na janela de saída do depurador ou para o terminal de depuração. |
|
Variável global que controla o comportamento do alocador de memória depuração. |
|
Variável global usada para testar o passado SCODE para ver se é um erro e, em caso afirmativo, lança o erro apropriado. |
|
Verifica que a integridade de todos os memória alocada no momento. |
|
Se chamado enquanto no depurador, descarta o estado de um objeto durante a depuração. |
|
Gere uma imagem da pilha atual.Esta função está sempre vinculada estaticamente. |
|
Permite que o despejo de vazamento de memória. |
|
Ativa o rastreamento e desativação de memória. |
|
Verifica um bloco de memória foi alocado corretamente. |
|
Verifica se um intervalo de endereços de memória está dentro dos limites do programa. |
|
Determina se um ponteiro para uma seqüência de caracteres é válido. |
|
Permite a chamada de uma função em cada alocação de memória. |
Funções de diagnóstico de objeto do MFC
Executa uma função especificada em todos os CObject-derivadas de classes que oferecem suporte a verificação de tipos em tempo de execução. |
|
Executa uma função especificada em todos os CObject-derivado objetos que foram alocados com nova. |