Rotinas de depurar
A versão de depurar de C em time de execução biblioteca fornece muitos serviços de diagnóstico que facilitam a depurar de programas e permitem que os desenvolvedores:
Passar diretamente para funções de time de execução durante a depuração
Resolver declarações, erros e exceções
Rastrear as alocações de heap e evitar vazamentos de memória
Relatório de mensagens de depurar para o usuário
Para usar essas rotinas, a _DEBUG sinalizar deve ser definido.Todas essas rotinas não fazem nada em uma compilação de um aplicativo de varejo.Para obter mais informações sobre como usar as novo rotinas de depurar, consulte CRT Debugging Techniques.
Depurar Versions of as rotinas de biblioteca C em tempo de execução
Rotina |
Uso |
Equivalente .NET estrutura |
---|---|---|
Avaliar uma expressão e gera um relatório de depurar quando o resultado for falso |
||
Semelhante a _ASSERT, mas inclui a expressão com falha no relatório gerado |
||
Confirmar a integridade dos blocos de memória alocado na heap de depurar |
||
Define um ponto de interrupção. |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Gerar um relatório de depurar com uma mensagem do usuário e enviar o relatório a três possíveis destinos |
sistema::Diagnóstico::depurar::gravar, sistema::Diagnóstico::depurar::Writeline, sistema::Diagnóstico::depurar::WriteIf, sistema::Diagnóstico::depurar::WriteLineIf |
|
Chamar uma função fornecida pelo aplicativo para todos os _CLIENT_BLOCK tipos na heap |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Todos os blocos de memória a depurar de despejo heap quando ocorreu um perda de memória significativa |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Verifique se um bloco de memória especificado está localizado na pilha local e que ele tem um identificador de tipo válido de depurar heap bloco |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Verifica se é um ponteiro especificado no heap de local |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Verifique se um intervalo de memória especificado é válido para leitura e gravação |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Obter o estado corrente da pilha de depurar e armazená-lo em um aplicativo fornecido _CrtMemState estrutura |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Comparar dois estados de memória para diferenças significativas e retornar os resultados |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
despejo informações sobre objetos no heap como um ponto de verificação especificado foi tirado, ou desde o início da execução do programa |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Despeja as informações de cabeçalho de depurar para um estado de memória especificada em um formulário pode ser entendido pelo usuário |
||
Retorna o bloco de tipo/subtipo associado com um ponteiro de bloco de heap depurar determinado. |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Para instalar uma função de alocação definida pelo cliente, vinculando-lo em C em time de execução depurar o processo de alocação de memória |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
conjunto um ponto de interrupção em um número de pedido de alocação do objeto especificado |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Recuperar ou modificar o estado do _crtDbgFlag sinalizar para controlar o comportamento de alocação do Gerenciador de heap de depurar |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Instalar uma função definida pelo aplicativo que é chamada sempre que uma função de despejo de depurar é chamada para despejar _CLIENT_BLOCK Digite blocos de memória |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Identificar o arquivo ou fluxo a ser usado sistema autônomo um destino para um tipo de relatório específico por _CrtDbgReport |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Para instalar uma função definida pelo cliente de relatório, vinculando-lo em C em time de execução depurar processo de geração de relatórios |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Instala ou desinstala uma função definida pelo cliente de relatório enganchando-lo para o C em time de execução depurar processo de geração de relatórios. |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Especifique o destino(s) Geral para um tipo de relatório específico gerado por _CrtDbgReport |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Controlar o progresso do aplicativo gerando um relatório de depurar chamando _CrtDbgReport com uma seqüência de caracteres de formato e um número variável de argumentos. Fornece não arquivo de fonte e informações sobre números de linha. |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Semelhante a _RPTn macros, mas fornece a fonte de nome de arquivo e linha número que originou a solicitação de relatório |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Alocar um número especificado de blocos de memória no heap com espaço adicional para um cabeçalho de depuração e substituir buffers |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Redimensionar um bloco de memória no heap especificado, expansão ou contração do bloco |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Liberar um bloco de memória no heap |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Criar um nome de caminho completo ou absoluto para o nome de caminho relativo especificado, usando _malloc_dbg alocar memória. |
||
Obter o diretório de trabalho corrente, usando _malloc_dbg alocar memória. |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Alocar um bloco de memória no heap com espaço adicional para um cabeçalho de depuração e substituir buffers |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Calcular o dimensionar de um bloco de memória no heap |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Realocar um bloco de memória no heap especificado por movendo e/ou redimensionar o bloco |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
|
Duplica uma seqüência de caracteres usando _malloc_dbg alocar memória. |
||
Gerar nomes, que você pode utilizar para criar arquivos temporários, usando _malloc_dbg alocar memória. |
Não aplicável.Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma. |
As rotinas de depurar podem ser usadas para percorrer o código-fonte para a maioria dos Outros C em time de execução rotinas durante o processo de depurar.No entanto, o Microsoft considera algumas tecnologias para ser o proprietário e, portanto, não fornece o código-fonte para essas rotinas.A maioria dessas rotinas pertencer ao tratamento de exceção ou grupos de processamento de ponto flutuante, mas alguns outros também estão incluídos.A tabela a seguir lista essas rotinas.
C rotinas em time de execução que não estão disponível no formulário de código fonte
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l* |
||
scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l* |
||
|
* Embora o código-fonte esteja disponível para a maioria dessa rotina, faz uma telefonar interna para outra rotina para o qual o código-fonte não for fornecido.
Alguns C em time de execução se funções e operadores de C++ comportam de maneira diferente quando chamado de uma compilação de depurar de um aplicativo.(Observe que criar uma depurar de um aplicativo pode ser concluído definindo a _DEBUG sinalizar ou pela vinculação com uma versão de depurar da biblioteca de time de execução C). As diferenças de comportamento geralmente consistir de recursos adicionais ou informações fornecidas pela rotina para oferecer suporte ao processo de depuração.A tabela a seguir lista essas rotinas.
Rotinas que se comportam de maneira diferente em depurar compilação de um aplicativo
C anular rotina |
C++ Excluir operador |
C declarar rotina |
C++ novo operador |
Para obter mais informações sobre como usar as versões de depurar dos operadores C++ na tabela anterior, consulte Usando a pilha de depurar do C++.