_CrtDbgReport, CrtDbgReportW
Gera um relatório com uma mensagem de depuração e envia o relatório para três destinos possíveis (somente a versão de depuração).
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
Report type: _CRT_WARN, _CRT_ERROR, and _CRT_ASSERT.filename
Ponteiro para o nome do arquivo de origem onde ocorreu o assert/relatório ou NULL.linenumber
O número no arquivo de origem onde ocorreu o assert/relatório de linha ou NULL.moduleName
Ponteiro para o nome do módulo (. exe ou. dll) onde ocorreu o assert/relatório.format
Ponteiro para a seqüência de caracteres de controle do formato usado para criar a mensagem do usuário.argument
Os argumentos de substituição opcional usados por format.
Valor de retorno
Para todos os destinos de relatório, _CrtDbgReport e _CrtDbgReportW retornar – 1 se ocorrer um erro e 0 se não há erros.No entanto, quando o destino do relatório é uma janela de mensagem de depuração e o usuário clica a Retry botão, essas funções retornam 1.Se o usuário clica a Abort botão na janela da mensagem de depuração, essas funções é o imediatamente a anulação e não retornam um valor.
O _RPT, _RPTF depurar macros chamada _CrtDbgReport para gerar seu debug relatórios.As versões de caractere largo dessas macros, bem como _ASSERT [E, _RPTWn e _RPTFWn, use _CrtDbgReportW para gerar seu debug relatórios.Quando _CrtDbgReport ou _CrtDbgReportW retornar 1, essas macros para iniciar o depurador, desde que a depuração just-in-time (JIT) está habilitada.
Comentários
_CrtDbgReporte _CrtDbgReportW pode enviar o relatório de depuração para três destinos diferentes: um arquivo de relatório de depuração, um monitor de depuração (o Visual Studio depurador), ou uma janela de mensagem de depuração.Duas funções de configuração, _ CrtSetReportMode e _CrtSetReportFile, são usados para especificar o destino ou destinos para cada tipo de relatório.Estas funções permitem que o destino ou destinos para cada tipo de relatório a ser controlado separadamente a emissão de relatórios.Por exemplo, é possível especificar que uma reportType de _CRT_WARN apenas ser enviada para o monitor de depuração, enquanto um reportType de _CRT_ASSERT ser enviada para uma janela de mensagem de depuração e um arquivo de relatório definidos pelo usuário.
_CrtDbgReportWé a versão de caractere largo da _CrtDbgReport.Todos os seus parâmetros de saída e string são em seqüências de caracteres largos; Caso contrário, ele é idêntico para a versão de caracteres de byte único.
_CrtDbgReporte _CrtDbgReportW para criar a mensagem do usuário para o relatório de depuração, substituindo o argumentn argumentos para oformat em seqüência, usando as mesmas regras definidas pelo printf ou wprintf funções.Essas funções, em seguida, geram o relatório de depuração e determinam o destino ou destinos, com base em modos de relatório atual e o arquivo definido para reportType.Quando o relatório é enviado para uma janela de mensagem de depuração, o filename, lineNumber, e moduleName estão incluídas as informações exibidas na janela.
A tabela a seguir lista as opções disponíveis para o modo de relatório ou modos de arquivo e o comportamento resultante de _CrtDbgReport e _CrtDbgReportW.Essas opções são definidas como sinalizadores de bit em Crtdbg.h.
Modo relatório |
Arquivo de relatório |
_CrtDbgReport, _CrtDbgReportW comportamento |
---|---|---|
_CRTDBG_MODE_DEBUG |
Não aplicável. |
Mensagem de gravações para o Windows OutputDebugString API. |
_CRTDBG_MODE_WNDW |
Não aplicável. |
Chama o 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 aborta imediatamente.Se um usuário clicar em Retry, ele retornará 1.Se um usuário clicar em Ignore, continua a execução e _CrtDbgReport e _CrtDbgReportW retornar 0.Observe que clicar em Ignore quando uma condição de erro existe sempre resulta em "comportamento indefinido". |
_CRTDBG_MODE_FILE |
__HFILE |
Mensagem de gravações para fornecido pelo usuário HANDLE, usando o Windows WriteFile API e não verifica a validade de identificador de arquivo; o aplicativo é responsável por abrir o arquivo de relatório e passando um identificador de arquivo válido. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDERR |
Mensagem de gravações para stderr. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDOUT |
Mensagem de gravações para stdout. |
O relatório pode ser enviado para um, dois ou três destinos ou nenhum destino em todos os.Para obter mais informações sobre como especificar o modo de relatório ou modos e arquivo de relatório, consulte o _ CrtSetReportMode e _CrtSetReportFile funções.Para obter mais informações sobre como usar as macros de depuração 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 por _CrtDbgReport e _CrtDbgReportW, você pode escrever seu próprios relatórios função e vinculá-lo para a biblioteca de tempo de execução C, mecanismo de relatório 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 depuração de bibliotecas de tempo 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
}
Consulte crt_dbg2 para obter um exemplo de como alterar a função de relatório.