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

_ASSERT

Avaliar uma expressão e gera um relatório de depurar quando o resultado for falso

sistema::Diagnóstico::depurar:: Assert

_ASSERTE

Semelhante a _ASSERT, mas inclui a expressão com falha no relatório gerado

sistema::Diagnóstico::depurar:: Assert

_CrtCheckMemory

Confirmar a integridade dos blocos de memória alocado na heap de depurar

sistema::Diagnóstico::PerformanceCounter

_CrtDbgBreak

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.

_CrtDbgReport, _CrtDbgReportW

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

_CrtDoForAllClientObjects

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.

_CrtDumpMemoryLeaks

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.

_CrtIsMemoryBlock

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.

_CrtIsValidHeapPointer

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.

_CrtIsValidPointer

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.

_CrtMemCheckpoint

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.

_CrtMemDifference

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.

_CrtMemDumpAllObjectsSince

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.

_CrtMemDumpStatistics

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

sistema::Diagnóstico::PerformanceCounter

_CrtReportBlockType

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.

_CrtSetAllocHook

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.

_CrtSetBreakAlloc

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.

_CrtSetDbgFlag

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.

_CrtSetDumpClient

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.

_CrtSetReportFile

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.

_CrtSetReportHook

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.

_CrtSetReportHook2, _CrtSetReportHookW2

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.

_CrtSetReportMode

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.

_RPT [0,1,2,3,4]

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.

_RPTF [0,1,2,3,4]

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.

_calloc_dbg

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.

_expand_dbg

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.

_free_dbg

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.

_fullpath_dbg, _wfullpath_dbg

Criar um nome de caminho completo ou absoluto para o nome de caminho relativo especificado, usando _malloc_dbg alocar memória.

sistema::IO::arquivo:: criar

_getcwd_dbg, _wgetcwd_dbg

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.

_malloc_dbg

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.

_msize_dbg

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.

_realloc_dbg

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.

_strdup_dbg, _wcsdup_dbg

Duplica uma seqüência de caracteres usando _malloc_dbg alocar memória.

sistema::String::Clone

_tempnam_dbg, _wtempnam_dbg

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

ACOS, acosf

_fpclass

_nextafter

ASIN

_fpieee_flt

POW

ATAN, atan2

_fpreset

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l*

_chgsign, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

sin

_control87 _controlfp, __control87_2

_j1

SINH

_copysign, _copysignl

_jn

SQRT

CoS

ldexp

_status87, _statusfp

COSH

log

TAN

EXP

LOG10

TANH

fabs

_logb

_y0

_finite

longjmp

_y1

piso

_matherr

_yn

fmod

modf

 

* 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++.

Consulte também

Referência

em time de execução Rotinas por categoria

Verificação de erro em time de execução