Compartilhar via


_RPT, _RPTF, _RPTW_RPTFW , Macros

Rastreia o progresso de um aplicativo gerando um relatório de depuração (somente versão de depuração). O n sufixo especifica o número de argumentos em args, e pode ser 0, 1, 2, 3, 4 ou 5.

Sintaxe

_RPTn(
   reportType,
   format,
   ...[args]
);
_RPTFn(
   reportType,
   format,
   [args]
);
_RPTWn(
   reportType,
   format
   [args]
);
_RPTFWn(
   reportType,
   format
   [args]
);

Parâmetros

reportType
Tipo de relatório: _CRT_WARN, _CRT_ERROR ou _CRT_ASSERT.

format
Cadeia de caracteres de controle de formato usada para criar a mensagem do usuário.

args
Argumentos de substituição usados por format.

Comentários

Todas essas macros usam os reportType parâmetros e format . Além disso, eles também podem usar até mais quatro argumentos, representados pelo número acrescentado ao nome da macro. Por exemplo, _RPT0 e _RPTF0 não aceite mais argumentos, _RPT1 e _RPTF1 pegue arg1, _RPT2 e _RPTF2 pegue arg1 e arg2, e assim por diante.

As _RPT macros e _RPTF são semelhantes à printf função, pois podem ser usadas para acompanhar o progresso de um aplicativo durante o processo de depuração. No entanto, essas macros são mais flexíveis do que printf porque não precisam ser colocadas entre instruções #ifdef para evitar que sejam chamadas em uma compilação de varejo de um aplicativo. Essa flexibilidade é obtida usando a _DEBUG macro; as _RPT macros e _RPTF só estão disponíveis quando o _DEBUG sinalizador é definido. Quando _DEBUG não está definido, as chamadas a essas macros são removidas durante o pré-processamento.

As macros _RPTW e _RPTFW são versões de caracteres largos dessas macros. Elas são como wprintf e adotam cadeias de caracteres largos como argumentos.

As _RPT macros chamam a _CrtDbgReport função para gerar um relatório de depuração com uma mensagem do usuário. As macros _RPTW chamam a função _CrtDbgReportW para gerar o mesmo relatório com caracteres largos. As macros _RPTF e _RPTFW criam um relatório de depuração com arquivo de origem e o número de linha em que a macro de relatório foi chamada, além da mensagem do usuário. A mensagem do usuário é criada substituindo os arg[n] argumentos na format cadeia de caracteres, usando as mesmas regras definidas pela printf função.

_CrtDbgReport ou _CrtDbgReportW geram o relatório de depuração e determinam seu destino com base nos modos de relatório atual e no arquivo definido para reportType. As funções _CrtSetReportMode e _CrtSetReportFile são usadas para definir os destinos de cada tipo de relatório.

Se uma _RPT macro for chamada e _CrtSetReportMode _CrtSetReportFile não tiver sido chamada, as mensagens serão exibidas da seguinte maneira:

Tipo de relatório Destino de saída
_CRT_WARN O texto de aviso não é exibido.
_CRT_ERROR Uma janela pop-up. Mesmo que se _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); tivesse sido especificado.
_CRT_ASSERT Mesmo que _CRT_ERROR.

Quando o destino é uma janela de mensagem de depuração e o usuário escolhe o botão _CrtDbgReport Repetir ou _CrtDbgReportW retorna 1. Esse valor retornado faz com que essas macros iniciem o depurador, se a depuração JIT (just-in-time) estiver habilitada. Para obter mais informações sobre como usar essas macros como um mecanismo de tratamento de erros de depuração, consulte Macros para relatórios.

Há duas outras macros que geram um relatório de depuração. A _ASSERT macro gera um relatório, mas somente quando seu argumento de expressão é avaliado como FALSE. _ASSERTE é exatamente como _ASSERT, mas inclui a expressão com falha no relatório gerado.

Requisitos

Macro Cabeçalho necessário
Macros _RPT <crtdbg.h>
Macros _RPTF <crtdbg.h>
Macros _RPTW <crtdbg.h>
Macros _RPTFW <crtdbg.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Bibliotecas

Somente versões de depuração de bibliotecas de tempo de execução C.

Embora essas macros estejam disponíveis quando você inclui crtdbg.h, para executar, o aplicativo deve ser vinculado a uma das bibliotecas de depuração, pois essas macros chamam outras funções de tempo de execução.

Exemplo

Veja o exemplo no _ASSERT artigo.

Confira também

Rotinas de depuração