Rotinas de depuração
A versão de depuração da biblioteca de tempo de execução C fornece muitos serviços de diagnóstico que facilitam programas de depuração e permitem aos desenvolvedores:
A etapa diretamente em tempo de execução durante a depuração funciona
Asserções, erros e exceções de resolução
Rastrear alocações do heap e evitar possíveis vazamentos de memória
Informar mensagens de depuração para o usuário
Para usar essas rotinas, o sinalizador de _DEBUG deve ser definido. Todas essas rotinas não faz nada em uma compilação de varejo de um aplicativo. Para obter mais informações sobre como usar as novas rotinas de depuração, consulte Técnicas de depuração do CRT.
Depurar versões das rotinas de biblioteca de tempo de execução C
Rotina |
Uso |
Equivalente a .NET Framework |
---|---|---|
Avalia uma expressão e gerencia um relatório de depuração quando o resultado será FALSE |
||
Semelhante a _ASSERT, mas inclui a expressão no relatório gerado com falha |
||
Confirme a integridade dos blocos de memória alocado no heap de depuração |
||
Define um ponto de interrupção. |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Gerencia um relatório de depuração com uma mensagem do usuário e enviar o relatório três destinos possíveis |
System::Diagnostics::Debug::Write, System::Diagnostics::Debug::Writeline, System::Diagnostics::Debug::WriteIf, System::Diagnostics::Debug::WriteLineIf |
|
Chamar uma função de aplicativo fornecida para todos os tipos de _CLIENT_BLOCK no heap |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Despeje todos os blocos de memória heap de depuração quando um vazamento de memória significativo ocorreu |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Verifique se um bloco de memória especificada está localizado no heap e local que tem um identificador em blocos de heap válido de depuração |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Verifica se um ponteiro especificado está no heap local |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Verifique se um intervalo especificado de memória é válida para ler e gravar |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Obtenha o estado atual do heap de depuração e o coloca em uma estrutura de _CrtMemState fornecida pelo aplicativo |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Compara dois estados de memória para diferenças significativas e retornar os resultados |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Despeje informações sobre objetos no heap desde que um ponto de verificação especificado foi realizado ou desde o início da execução do programa |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Despeje informações de cabeçalho de depuração para um estado especificado da memória em um formato legível usuário |
||
Retorna o em blocos/subtipo associado a um ponteiro de bloco fornecido do heap de depuração. |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Instalar uma função de alocação definida pelo cliente enganchando ao processo de alocação de memória de depuração de tempo de execução C |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Definir um ponto de interrupção em um número da ordem especificada da alocação de objeto |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Recuperar ou modificar o estado do sinalizador de _crtDbgFlag para controlar o comportamento de alocação do gerenciador de heap de depuração |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Instalar uma função definida pelo aplicativo que é chamada sempre que uma função de despejo de depuração é chamada para despejar blocos de memória do tipo de _CLIENT_BLOCK |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Identifica o arquivo ou passe para ser usado como um destino para um tipo de relatório específico por _CrtDbgReport |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Instalar uma função definida pelo cliente de relatório enganchando a no processo de relatório de depuração de tempo de execução C |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
As instalações ou desinstala uma função definida pelo cliente de relatório enganchando a no processo de relatório de depuração de tempo de execução C. |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Especifique os destinos gerais para um tipo específico de relatório gerado por _CrtDbgReport |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Controlar o progresso do aplicativo gerando um relatório de depuração _CrtDbgReport chamando com uma cadeia de formato e um número variável de argumentos. Não fornece nenhum arquivo de origem e linha informações de número. |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Semelhante a macros de _RPTn , mas fornece o nome do arquivo de origem e o número da linha em que a solicitação de relatório foi originada |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Atribui um número especificado de blocos de memória heap com espaço adicional para um cabeçalho de depuração e substituir os buffers |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Redimensiona um bloco de memória especificado no heap a expansão ou redução do bloco |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Liberar um bloco de memória heap |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Crie um absoluta ou um nome de caminho completo para o nome do caminho relativo especificado, usando _malloc_dbg para alocar memória. |
||
Obter o diretório de trabalho atual, usando _malloc_dbg para alocar memória. |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Atribui um bloco de memória heap com espaço adicional para um cabeçalho de depuração e substituir os buffers |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Calcule o tamanho de um bloco de memória heap |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Realocar um bloco de memória especificado no heap movendo e/ou redimensionando o bloco |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
|
Duplicar uma cadeia de caracteres, usando _malloc_dbg para alocar memória. |
||
Gerencia nomes que você pode usar para criar arquivos temporários, usando _malloc_dbg para alocar memória. |
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas. |
As rotinas de depuração podem ser usadas para percorrer o código-fonte para a maioria das outras rotinas de tempo de execução C durante o processo de depuração. No entanto, O considera qualquer tecnologia ser proprietária e, consequentemente, não fornece o código-fonte para essas rotinas. A maioria dessas rotinas pertencem à manipulação de exceção ou grupos de ponto flutuante de processamento, mas alguns outros são incluídas também. A tabela a seguir lista essas rotinas.
Rotinas de tempo de execução C que não estão disponíveis no formato do código-fonte
* Embora o código-fonte está disponível para a maioria dessas rotina, faz uma chamada interno a outra rotina para a qual o código-fonte não é fornecido.
Algumas funções de tempo de execução C e os operadores C++ se comportam de maneira diferente quando chamado de uma construção de depuração de um aplicativo. (Observe que uma compilação de depuração de um aplicativo pode ser feita definir o sinalizador de _DEBUG ou vinculando-os com uma versão de depuração da biblioteca de tempo de execução C). As diferenças de comportamento geralmente consistem em recursos adicionais ou nas informações fornecidas por rotina para dar suporte ao processo de depuração. A tabela a seguir lista essas rotinas.
Rotinas que se comportam diferentemente em uma compilação de depuração de um aplicativo
Rotina de 2.0 anular C |
Operador de excluir C++ |
Rotina de 2.0 assert C |
Operador de novo C++ |