Compartilhar via


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

_ASSERT

Avalia uma expressão e gerencia um relatório de depuração quando o resultado será FALSE

System::Diagnostics::Debug::Assert

_ASSERTE

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

System::Diagnostics::Debug::Assert

_CrtCheckMemory

Confirme a integridade dos blocos de memória alocado no heap de depuração

System::Diagnostics::PerformanceCounter

_CrtDbgBreak

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.

_CrtDbgReport, _CrtDbgReportW

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

_CrtDoForAllClientObjects

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.

_CrtDumpMemoryLeaks

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.

_CrtIsMemoryBlock

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.

_CrtIsValidHeapPointer

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.

_CrtIsValidPointer

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.

_CrtMemCheckpoint

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.

_CrtMemDifference

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.

_CrtMemDumpAllObjectsSince

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.

_CrtMemDumpStatistics

Despeje informações de cabeçalho de depuração para um estado especificado da memória em um formato legível usuário

System::Diagnostics::PerformanceCounter

_CrtReportBlockType

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.

_CrtSetAllocHook

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.

_CrtSetBreakAlloc

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.

_CrtSetDbgFlag

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.

_CrtSetDumpClient

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.

_CrtSetReportFile

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.

_CrtSetReportHook

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.

_CrtSetReportHook2, _CrtSetReportHookW2

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.

_CrtSetReportMode

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.

[_RPT0,1,2,3,4]

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.

[_RPTF0,1,2,3,4]

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.

_calloc_dbg

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.

_expand_dbg

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.

_free_dbg

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.

_fullpath_dbg, _wfullpath_dbg

Crie um absoluta ou um nome de caminho completo para o nome do caminho relativo especificado, usando _malloc_dbg para alocar memória.

System::IO::File::Create

_getcwd_dbg, _wgetcwd_dbg

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.

_malloc_dbg

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.

_msize_dbg

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.

_realloc_dbg

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.

_strdup_dbg, _wcsdup_dbg

Duplicar uma cadeia de caracteres, usando _malloc_dbg para alocar memória.

System::String::Clone

_tempnam_dbg, _wtempnam_dbg

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

acos, acosf, acosl

_fpclass

_nextafter

asin

_fpieee_flt

prisioneiro de guerra

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, _chgsignf, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

sin

_control87, _controlfp, __control87_2

_j1

sinh

copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl

_jn

SQRT

cos

ldexp

_status87, _statusfp

moca

log

tan

EXP

log10

tanh

fabs

_logb

_y0

_finite

longjmp

_y1

floor

_matherr

_yn

fmod

modf

 

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

Consulte também

Referência

Rotinas de tempo de execução por categoria

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