Compartilhar via


_CrtDbgReport, _CrtDbgReportW

Gera um relatório com uma mensagem de depurar e envia o relatório para três possíveis destinos (apenas para a versão de depurar).

int _CrtDbgReport( 
   int reportType,
   const char *filename,
   int linenumber,
   const char *moduleName,
   const char *format [,
   argument] ... 
);
int _CrtDbgReportW( 
   int reportType,
   const wchar_t *filename,
   int linenumber,
   const wchar_t *moduleName,
   const wchar_t *format [,
   argument] ... 
);

Parâmetros

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

  • filename
    Ponteiro para o nome do arquivo de fonte onde ocorreu o assert/relatório ou NULL.

  • linenumber
    Linha número no arquivo de fonte onde ocorreu o assert/relatório ou NULL.

  • moduleName
    Ponteiro para o nome do módulo (.exe ou .dll) onde ocorreu o assert/relatório.

  • format
    Ponteiro para o controle de formato de seqüência usada para criar a mensagem do usuário.

  • argument
    Argumentos de substituição opcional usados por format.

Valor de retorno

Para todos os destinos de relatório, _CrtDbgReport e _CrtDbgReportW retorne-1 se ocorrer um erro e 0 se nenhum erro for encontrado. No entanto, quando o destino do relatório é uma janela de mensagem de depurar e o usuário clica o Retry botão, essas funções retornam 1. Se o usuário clica o Abort botão do Debug janela de mensagem, essas funções anular imediatamente e não retornam um valor.

The _RPT, _RPTF Ligue para macros de depurar de _CrtDbgReport para gerar relatórios de depurar. sistema autônomo versões de caractere largo dessas macros, bem sistema autônomo _ASSERT [E, _RPTWn e _RPTFWn, use _CrtDbgReportW para gerar relatórios de depurar. Quando _CrtDbgReport ou _CrtDbgReportW retornar 1, essas macros inicie o depurador, desde que a depuração just-in-time (JIT) está habilitada.

Comentários

_CrtDbgReport e _CrtDbgReportW pode enviar o relatório de depurar para três destinos diferentes: um arquivo de relatório de depurar, um monitor de depurar (o Visual Studio depurador), ou uma depurar janela de mensagem. Duas funções de configuração, _CrtSetReportMode and _CrtSetReportFile, são usados para especificar o destino ou destinos para cada tipo de relatório.Estas funções permitem a emissão de relatórios destino ou destinos para cada tipo de relatório a ser controlada separadamente.Por exemplo, é possível especificar que um reportType de _CRT_WARN apenas ser enviada para o monitor de depurar, enquanto um reportType de _CRT_ASSERT ser enviados para uma janela de mensagem de depurar e um arquivo de relatório definidos pelo usuário.

In Visual C++ 2005, _CrtDbgReportW é a versão de caractere largo da _CrtDbgReport. Todos os seus parâmetros de saída e de seqüência de caractere estão em seqüências de caractere largos; caso contrário, é idêntico para a versão de caractere de um byte.

_CrtDbgReport and _CrtDbgReportW create the user message for the debug report by substituting the argument[n] arguments into the format string, using the same rules defined by the printf or wprintf functions.Essas funções, em seguida, geram o relatório de depurar e determinam o destino ou destinos, com base no arquivo definido para e modos de relatório correntereportType. Quando o relatório é enviado para uma janela de mensagens de depurar, a filename, lineNumber, e moduleName estão incluídos nas informações exibidas na janela.

A tabela a seguir lista as opções disponível para o modo de relatório ou modos de arquivo e o comportamento resultante de _CrtDbgReport e _CrtDbgReportW. Essas opções são definidas sistema autônomo sinalizadores de bit em Crtdbg.h.

Modo de relatório

Arquivo de relatório

_CrtDbgReport, _CrtDbgReportW comportamento

_CRTDBG_MODE_DEBUG

Não aplicável.

Grava mensagem Windows OutputDebugString API.

_CRTDBG_MODE_WNDW

Não aplicável.

Chamadas Windows MessageBox API para criar a caixa de mensagem para exibir a mensagem junto com Abort, Retry, e Ignore botões. Se um usuário clicar em Abort, _CrtDbgReport ou _CrtDbgReport anula imediatamente. Se um usuário clicar em Retry, retorna 1. Se um usuário clicar em Ignore, execução continuará e _CrtDbgReport e _CrtDbgReportW retorne 0. Observe que quando você clica em IgnoreQuando uma condição de erro existe geralmente resultados em "comportamento indefinido."

_CRTDBG_MODE_FILE

__HFILE

Grava mensagem fornecida pelo usuário HANDLE, usando o Windows WriteFile API e não não verificar a validade de identificador de arquivo; o aplicativo é responsável por abrir o arquivo de relatório e passar um identificador de arquivo válido.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Grava mensagem stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Grava mensagem stdout.

O relatório pode ser enviado para um, dois ou três destinos ou nenhum destino todo.Para obter mais informações sobre como especificar o modo de relatório ou modos e arquivo de relatório, consulte o _CrtSetReportMode and _CrtSetReportFile funções.Para obter mais informações sobre como usar as macros de depurar e funções de emissão de relatórios, consulte Usando macros para verificação e emissão de relatórios.

Se seu aplicativo precisar de mais flexibilidade do que o fornecido pelo _CrtDbgReport e _CrtDbgReportW, você pode escrever seu próprios relatórios de função e associá-lo na biblioteca de time de execução C, mecanismo de emissão de relatórios usando o _CrtSetReportHook função.

Requisitos

Rotina

Cabeçalho necessário

_CrtDbgReport

<crtdbg.h>

_CrtDbgReportW

<crtdbg.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Bibliotecas

Versões de depurar de Bibliotecas de time de execução c somente.

Exemplo

// crt_crtdbgreport.c
#include <crtdbg.h>

int main() {
#ifdef _DEBUG
   CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}

See crt_dbg2 para obter um exemplo de como alterar a função de relatório.

Equivalente do NET Framework

Consulte também

Referência

Rotinas de depurar

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG