Partilhar via


Classe CDebugReportHook

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Use essa classe para enviar relatórios de depuração para um canal nomeado.

Sintaxe

class CDebugReportHook

Membros

Construtores Públicos

Nome Description
GanchoReporteTCDebug::GanchoReporteTCDebug Chama SetPipeName, SetTimeout e SetHook.
GanchoReporte CDebug::~Gancho ReporteRelatório Chama CDebugReportHook::RemoveHook.

Métodos Públicos

Nome Description
GanchoReporteTCDebug::GanchoReporteGanchoProc (Estática) A função de reporte personalizada que está ligada ao processo de reporte de depuração em tempo de execução em C.
HookReportReportDo CDebug::RemoveHook Chame este método para parar de enviar relatórios de depuração ao pipe nomeado e restaurar o hook de relatório anterior.
RelatórioGanchoTCDebug::GanchoSetHook Chame este método para começar a enviar relatórios de depuração para o pipe nomeado.
GanchoReporteTCDebug::SetPipeName Chame este método para definir a máquina e o nome do tubo para onde serão enviados os relatórios de depuração.
GanchoReporteCDCDebug::SetTimeout Chame este método para definir o tempo em milissegundos em que esta classe espera que o pipe nomeado fique disponível.

Observações

Crie uma instância desta classe em compilações de depuração dos seus serviços ou aplicações para enviar relatórios de depuração a um pipe nomeado. Os relatórios de depuração são gerados ao chamar _CrtDbgReport ou usar um wrapper para esta função, como os macros ATLTRACE e ATLASSERT .

O uso desta classe permite-lhe depurar interativamente componentes a correr em estações de janela não interativas.

Note que os relatórios de depuração são enviados usando o contexto de segurança subjacente do thread. A personificação está temporariamente desativada para que os relatórios de depuração possam ser consultados em situações onde está a ocorrer a personificação de utilizadores com baixo privilégio, como em aplicações web.

Requerimentos

Cabeçalho: atlutil.h

GanchoReporteTCDebug::GanchoReporteTCDebug

Chama SetPipeName, SetTimeout e SetHook.

CDebugReportHook(
    LPCSTR szMachineName = ".",
    LPCSTR szPipeName = "AtlsDbgPipe",
    DWORD dwTimeout = 20000) throw();

Parâmetros

szMachineName
O nome da máquina para onde deve ser enviada a saída da depuração. Por defeito, é a máquina local.

szPipeName
O nome do pipe nomeado para onde a saída de depuração deve ser enviada.

dwTimeout
O tempo em milissegundos em que esta classe espera que o tubo nomeado fique disponível.

GanchoReporte CDebug::~Gancho ReporteRelatório

Chama CDebugReportHook::RemoveHook.

~CDebugReportHook() throw();

GanchoReporteTCDebug::GanchoReporteGanchoProc

A função de reporte personalizada que está ligada ao processo de reporte de depuração em tempo de execução em C.

static int __cdecl CDebugReportHookProc(
    int reportType,
    char* message,
    int* returnValue) throw();

Parâmetros

relatório Tipo
O tipo do relatório (_CRT_WARN, _CRT_ERROR ou _CRT_ASSERT).

mensagem
A cadeia de mensagens.

returnValue
O valor que deve ser devolvido por _CrtDbgReport.

Valor de retorno

Retorna FALSE se o gancho tratar completamente a mensagem em questão, de modo que não seja necessário mais reporte. Retorna TRUE se _CrtDbgReport deve reportar a mensagem da forma normal.

Observações

A função de reporte tenta abrir o pipeline nomeado e comunicar com o processo na outra extremidade. Se o tubo estiver ocupado, a função de reporte espera até que o tubo esteja livre ou que o timeout expire. O timeout pode ser definido pelo construtor ou por uma chamada para CDebugReportHook::SetTimeout.

O código nesta função é executado no contexto de segurança subjacente do thread chamador, ou seja, a personificação está desativada durante a duração desta função.

HookReportReportDo CDebug::RemoveHook

Chame este método para parar de enviar relatórios de depuração ao pipe nomeado e restaurar o hook de relatório anterior.

void RemoveHook() throw();

Observações

Chamadas _CrtSetReportHook2 para restaurar o gancho de relatório anterior.

RelatórioGanchoTCDebug::GanchoSetHook

Chame este método para começar a enviar relatórios de depuração para o pipe nomeado.

void SetHook() throw();

Observações

As chamadas _CrtSetReportHook2 para que os relatórios de depuração sejam encaminhados através do CDebugReportHookProc para o pipe nomeado. Esta classe mantém o registo do hook de relatório anterior para que possa ser restaurado quando o RemoveHook é chamado.

GanchoReporteTCDebug::SetPipeName

Chame este método para definir a máquina e o nome do tubo para onde serão enviados os relatórios de depuração.

BOOL SetPipeName(
    LPCSTR szMachineName = ".",
    LPCSTR szPipeName = "AtlsDbgPipe") throw();

Parâmetros

szMachineName
O nome da máquina para onde deve ser enviada a saída da depuração.

szPipeName
O nome do pipe nomeado para onde a saída de depuração deve ser enviada.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

GanchoReporteCDCDebug::SetTimeout

Chame este método para definir o tempo em milissegundos em que esta classe espera que o pipe nomeado fique disponível.

void SetTimeout(DWORD dwTimeout);

Parâmetros

dwTimeout
O tempo em milissegundos em que esta classe espera que o tubo nomeado fique disponível.

Consulte também

Classes