Partilhar via


Serviços de diagnóstico

A biblioteca Microsoft Foundation classe fornece muitos serviços de diagnóstico que tornar a depuração mais fácil seus programas.Esses serviços de diagnóstico incluem macros e funções global que permitem controlar o memória seu programa de alocações, despejar o Sumário de objetos durante o time de execução e imprimir mensagens de depuração durante o time de execução.As funções global para serviços de diagnóstico e as macros são agrupadas nas seguintes categorias:

  • Macros de diagnóstico Geral

  • Variáveis e funções Geral de diagnóstico

  • Funções de diagnóstico do objeto

Essas funções e macros estão disponível para todas as classes derivadas de CObject nas versões depurar e versão do MFC. No entanto, todas exceto DEBUG_NEW e VERIFIQUE SE não fazer nada na versão de lançamento.

Na biblioteca de depurar, todos os blocos de memória alocada são bracketed com uma série de "bytes protetor." Se esses bytes são perturbados por uma gravar 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 de novo armazenará o nome de arquivo e o número de linha 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, o C em time de execução biblioteca também oferece suporte a um conjunto de funções de diagnóstico que podem ser usadas para depurar seus aplicativos.Para obter mais informações, consulte Rotinas de depurar na referência de biblioteca de time de execução.

Macros de diagnóstico do MFC geral

DECLARAR

Imprime uma mensagem e anula o programa, em seguida, se a expressão especificada for avaliada como FALSE na versão de depurar da biblioteca.

ASSERT_KINDOF

Testes de um objeto é um objeto da classe especificada ou de uma classe derivada da classe especificada.

ASSERT_VALID

Testa a validade de um objeto interna chamando seus AssertValid membro funcionar; normalmente substituído do CObject.

DEBUG_NEW

Fornece um nome de arquivo e a linha número para todas as alocações de objeto no modo de depurar para ajudar a localizar vazamentos de memória.

DEBUG_ONLY

Semelhante a DECLARAR mas não teste o valor da expressão; útil para código que deve ser executado somente em modo de depurar.

RASTREAMENTO

Fornece printf-como o recurso na versão de depurar de biblioteca.

VERIFIQUE SE

Semelhante a DECLARAR mas avaliará a expressão na versão de lançamento da biblioteca, bem sistema autônomo na versão de depurar.

Funções e variáveis de diagnóstico do MFC geral

afxDump

Variável global que envia CDumpContext informações para a janela de saída do depurador ou para o terminal de depurar.

afxMemDF

Variável global que controla o comportamento do alocador de memória a depuração.

AfxCheckError

Variável global usado para testar o passado SCODE para ver se é um erro e, em caso afirmativo, lança o erro apropriado.

AfxCheckMemory

Verifica que a integridade de todos os memória alocada no momento.

AfxDump

Se chamado enquanto no depurador, despejos de estado de um objeto durante a depuração.

AfxDumpStack

gerar uma imagem da pilha corrente.Esta função está sempre vinculada estaticamente.

AfxEnableMemoryTracking

Ativa o acompanhamento e desativar da memória.

AfxIsMemoryBlock

Verifica um bloco de memória foi alocado corretamente.

AfxIsValidAddress

Verifica se um intervalo de endereços de memória está dentro dos limites do programa.

AfxIsValidString

Determina se um ponteiro para uma seqüência de caracteres é válido.

AfxSetAllocHook

Permite que a chamada de uma função em cada alocação de memória.

Funções de diagnóstico de objeto do MFC

AfxDoForAllClasses

Executa uma função especificada em todos os CObject-derivadas de classes que oferecem suporte a verificação de tipos em time de execução.

AfxDoForAllObjects

Executa uma função especificada em todos os CObject-derivado objetos que foram alocados com novo.

Consulte também

Conceitos

Macros do MFC e globais