_RPT
, , , _RPTF
_RPTW
Macros _RPTFW
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 no 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 levar até mais quatro argumentos, significados pelo número anexado ao nome da macro. Por exemplo, e não tome mais argumentos, e tome , e tome arg1
arg1
e , _RPT0
_RPT2
_RPT1
e _RPTF0
_RPTF1
_RPTF2
arg2
assim por diante.
As _RPT
macros e _RPTF
são semelhantes à printf
função, porque podem ser usadas para controlar o progresso de um aplicativo durante o processo de depuração. No entanto, essas macros são mais flexíveis do que porque não precisam ser incluídas em instruções #ifdef para impedir que printf
sejam chamadas em uma compilação de varejo de um aplicativo. Essa flexibilidade é alcançada 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 de 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 de retorno faz com que essas macros iniciem o depurador, se a depuração just-in-time (JIT) 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
o , para ser executado, o aplicativo deve se vincular a uma das bibliotecas de depuração, porque essas macros chamam outras funções de tempo de execução.
Exemplo
Veja o _ASSERT
exemplo no artigo.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de