Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.