Clase CDebugReportHook
Use esta clase para enviar informes de depuración a una canalización con nombre.
Sintaxis
class CDebugReportHook
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CDebugReportHook::CDebugReportHook | Llama a SetPipeName, SetTimeout y SetHook. |
CDebugReportHook::~CDebugReportHook | Llama a CDebugReportHook::RemoveHook. |
Métodos públicos
Nombre | Descripción |
---|---|
CDebugReportHook::CDebugReportHookProc | (Estático) Función de informes personalizada que se enlaza al proceso de generación de informes de depuración en tiempo de ejecución de C. |
CDebugReportHook::RemoveHook | Llame a este método para dejar de enviar informes de depuración a la canalización con nombre y restaurar el enlace de informes anterior. |
CDebugReportHook::SetHook | Llame a este método para empezar a enviar informes de depuración a la canalización con nombre. |
CDebugReportHook::SetPipeName | Llame a este método para establecer la máquina y el nombre de la canalización a la que se enviarán los informes de depuración. |
CDebugReportHook::SetTimeout | Llame a este método para establecer el tiempo en milisegundos que va a esperar esta clase a que la canalización con nombre esté disponible. |
Comentarios
Cree una instancia de esta clase en las compilaciones de depuración de los servicios o las aplicaciones para enviar informes de depuración a una canalización con nombre. Los informes de depuración se generan mediante una llamada a _CrtDbgReport o mediante un contenedor para esta función, como las macros ATLTRACE y ATLASSERT.
El uso de esta clase permite depurar de forma interactiva los componentes que se ejecutan en estaciones de ventana no interactivas.
Tenga en cuenta que los informes de depuración se envían mediante el contexto de seguridad subyacente del subproceso. La suplantación está deshabilitada temporalmente para que los informes de depuración se puedan ver en situaciones en las que se está realizando la suplantación de usuarios con pocos privilegios, como en las aplicaciones web.
Requisitos
Header: atlutil.h
CDebugReportHook::CDebugReportHook
Llama a SetPipeName, SetTimeout y SetHook.
CDebugReportHook(
LPCSTR szMachineName = ".",
LPCSTR szPipeName = "AtlsDbgPipe",
DWORD dwTimeout = 20000) throw();
Parámetros
szMachineName
Nombre de la máquina a la que se debe enviar la salida de la depuración. El valor predeterminado es la máquina local.
szPipeName
Nombre de la canalización con nombre a la que se debe enviar la salida de depuración.
dwTimeout
Tiempo en milisegundos que va a esperar esta clase a que la canalización con nombre esté disponible.
CDebugReportHook::~CDebugReportHook
Llama a CDebugReportHook::RemoveHook.
~CDebugReportHook() throw();
CDebugReportHook::CDebugReportHookProc
Función de informes personalizada que se enlaza al proceso de generación de informes de depuración en tiempo de ejecución de C.
static int __cdecl CDebugReportHookProc(
int reportType,
char* message,
int* returnValue) throw();
Parámetros
reportType
Tipo del informe (_CRT_WARN, _CRT_ERROR o _CRT_ASSERT).
message
Cadena de mensaje.
returnValue
Valor que debe devolver _CrtDbgReport.
Valor devuelto
Devuelve FALSE si el enlace se encarga de procesar completamente el mensaje en cuestión, de forma que no se requiera ningún informe posterior. Devuelve TRUE si _CrtDbgReport
debe notificar el mensaje de la manera normal.
Comentarios
La función de informes intenta abrir la canalización con nombre y comunicarse con el proceso del otro extremo. Si la canalización está ocupada, la función de informes esperará hasta que la canalización esté libre o expire el tiempo de espera. El constructor puede establecer el tiempo de espera o mediante una llamada a CDebugReportHook::SetTimeout.
El código de esta función se ejecuta en el contexto de seguridad subyacente del subproceso que realiza la llamada, es decir, la suplantación está deshabilitada durante la duración de esta función.
CDebugReportHook::RemoveHook
Llame a este método para dejar de enviar informes de depuración a la canalización con nombre y restaurar el enlace de informes anterior.
void RemoveHook() throw();
Comentarios
Llama a _CrtSetReportHook2 para restaurar el enlace de informes anterior.
CDebugReportHook::SetHook
Llame a este método para empezar a enviar informes de depuración a la canalización con nombre.
void SetHook() throw();
Comentarios
Llama a _CrtSetReportHook2 para que los informes de depuración se enruten mediante CDebugReportHookProc a la canalización con nombre. Esta clase realiza un seguimiento del enlace de informes anterior para que se pueda restaurar cuando se llama a RemoveHook.
CDebugReportHook::SetPipeName
Llame a este método para establecer la máquina y el nombre de la canalización a la que se enviarán los informes de depuración.
BOOL SetPipeName(
LPCSTR szMachineName = ".",
LPCSTR szPipeName = "AtlsDbgPipe") throw();
Parámetros
szMachineName
Nombre de la máquina a la que se debe enviar la salida de la depuración.
szPipeName
Nombre de la canalización con nombre a la que se debe enviar la salida de depuración.
Valor devuelto
Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.
CDebugReportHook::SetTimeout
Llame a este método para establecer el tiempo en milisegundos que va a esperar esta clase a que la canalización con nombre esté disponible.
void SetTimeout(DWORD dwTimeout);
Parámetros
dwTimeout
Tiempo en milisegundos que va a esperar esta clase a que la canalización con nombre esté disponible.