_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.