Rotinas de depuração

A versão de depuração da biblioteca de tempo de execução do c fornece vários serviços de diagnóstico que facilitam a depuração de programas e permitem que os desenvolvedores:

  • Etapa diretamente nas funções de tempo de execução durante a depuração

  • Resolver as asserções, erros e exceções

  • Rastrear as alocações de heap e impeça vazamentos de memória

  • Relatório de mensagens de depuração para o usuário.

Para usar essas rotinas, o _ Debug sinalizador 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 novas rotinas de depuração, consulte Técnicas de depuração CRT.

Versões de depuração das rotinas da biblioteca de tempo de execução c

Rotina

Uso

.Equivalente do NET Framework

_ASSERT

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

System::Diagnostics::Debug:: Assert

_ASSERTE

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

System::Diagnostics::Debug:: Assert

_CrtCheckMemory

Confirmar a integridade dos blocos de memória alocada na pilha de depuração

System::Diagnostics::PerformanceCounter

_CrtDbgBreak

Define um ponto de interrupção.

Não aplicável.Para chamar 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 depuração com uma mensagem de usuário e enviar o relatório para três destinos possíveis

System::Diagnostics::Debug::Write, System::Diagnostics::Debug::Writeline, System::Diagnostics::Debug::WriteIf, System::Diagnostics::Debug::WriteLineIf

_CrtDoForAllClientObjects

Chamar uma função fornecida pelo aplicativo para todos os _CLIENT_BLOCK tipos no heap

Não aplicável.Para chamar 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 na pilha de depuração de despejo quando ocorre um vazamento de memória significativa

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_CrtIsMemoryBlock

Verifique se que um bloco de memória especificado está localizado na pilha local e se possui um identificador de tipo de bloco de heap de depuração válido

Não aplicável.Para chamar 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 está na pilha de local

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_CrtIsValidPointer

Verificar se um intervalo de memória especificado é válido para leitura e gravação

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_CrtMemCheckpoint

Obter o estado atual da pilha de depuração e armazená-lo em um aplicativo-fornecido _CrtMemState estrutura

Não aplicável.Para chamar 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 chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_CrtMemDumpAllObjectsSince

Informações sobre objetos na heap desde que foi feito a um ponto de verificação especificado ou desde o início da execução do programa de despejo.

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_CrtMemDumpStatistics

Despejar as informações de cabeçalho de depuração para um estado de memória especificada em um formulário legível pelo usuário

System::Diagnostics::PerformanceCounter

_CrtReportBlockType

Retorna o tipo/subtipo do bloco associado com um ponteiro de bloco de heap de depuração determinado.

Não aplicável.Para chamar 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, conectá-lo no 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 c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_CrtSetBreakAlloc

Definir um ponto de interrupção em um número de pedido de alocação do objeto especificado

Não aplicável.Para chamar 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 da _crtDbgFlag sinalizador para controlar o comportamento de alocação do Gerenciador de heap de depuração

Não aplicável.Para chamar 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 depuração é chamada para despejar _CLIENT_BLOCK digite blocos de memória

Não aplicável.Para chamar 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 como um destino para um tipo de relatório específico por_CrtDbgReport

Não aplicável.Para chamar 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, conectá-lo para o processo de relatório de depuração de tempo de execução c

Não aplicável.Para chamar 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 por conectá-lo para o processo de relatório de depuração de tempo de execução C.

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_ CrtSetReportMode

Especificar o destination(s) gerais para um tipo específico de relatório gerado pelo_CrtDbgReport

Não aplicável.Para chamar 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 depuração chamando _CrtDbgReport com uma seqüência de caracteres de formato e um número variável de argumentos.Não fornece nenhuma informação de chamadas número de arquivos e linha de origem.

Não aplicável.Para chamar 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 o número origem de linha e o nome do arquivo que originou a solicitação de relatório

Não aplicável.Para chamar 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 buffers de substituição

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_expand_dbg

Para redimensionar um bloco de memória no heap especificado, expansão ou contração do bloco

Não aplicável.Para chamar 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 chamar 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 absoluto ou completo para o caminho relativo especificado nomear, usando _malloc_dbg ao alocar memória.

System::IO::File:: criar

_getcwd_dbg, _wgetcwd_dbg

Obter o diretório de trabalho atual, usando _malloc_dbg ao alocar memória.

Não aplicável.Para chamar 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 buffers de substituição

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

_msize_dbg

Calcular o tamanho de um bloco de memória no heap

Não aplicável.Para chamar 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 chamar 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 ao alocar memória.

System::String::clone

_tempnam_dbg, _wtempnam_dbg

Gerar nomes que você pode usar para criar arquivos temporários, usando _malloc_dbg ao alocar memória.

Não aplicável.Para chamar a função c padrão, use PInvoke.Para obter mais informações, consulte Exemplos de invocação de plataforma.

As rotinas de depuração podem ser usadas para percorrer o código-fonte para a maioria das outras rotinas tempo de execução c durante o processo de depuração.No entanto, a Microsoft considera a alguma tecnologia proprietários e, portanto, não fornece o código-fonte para essas rotinas.A maioria dessas rotinas pertence para a manipulação 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.

Rotinas de tempo de execução c que não estão disponíveis na forma 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

Finitas

longjmp

_y1

piso

_matherr

_yn

fmod

modf

 

* Embora o código fonte está disponível para a maioria dessa rotina, faz uma chamada interna para outra rotina para o qual o código-fonte não for fornecido.

Algumas funções de tempo de execução c e operadores de C++ ter comportamentos diferentes quando chamados a partir de uma compilação de depuração de um aplicativo.(Observe que uma compilação de depuração de um aplicativo pode ser feita com a definição de ambos os _DEBUG sinalizar ou por meio da vinculação com uma versão de depuração da biblioteca de tempo de execução C.) As diferenças de comportamento geralmente consistem em informações fornecidas pela rotina para suportar o processo de depuração ou de recursos extras.A tabela a seguir lista essas rotinas.

Criação de rotinas que se comportam de maneira diferente em uma depuração de um aplicativo

C anular rotina

C++ Excluir operador

C assert rotina

C++ nova operador

Para obter mais informações sobre como usar as versões de depuração dos operadores C++ na tabela anterior, consulte usando a pilha de depuração do C++.

Consulte também

Referência

Rotinas de tempo de execução por categoria

Verificação de erros de tempo de execução