2009-03-14 16 views
6

Estoy desarrollando un Browser Helper Object se ejecuta dentro de Internet Explorer. Estoy escribiendo mensajes de depuración con ATLTRACE("..."); Estos aparecen bien cuando Visual Studio está conectado al proceso iexplore.exe, pero esto es lento para una prueba rápida. DebugView no captura nada de mi BHO.DebugView no muestra mensajes de depuración cuando Visual Studio hace

¿Por qué DebugView no muestra mensajes de depuración BHO? ¿Tiene algo que ver con que Internet Explorer se ejecute a un nivel de integridad bajo?

Respuesta

11

Suponiendo que ejecuta IE en Vista o posterior (lo que parece desde que habla de niveles de integridad), puede establecer el nivel de integridad de DebugView a una integridad inferior para que cualquier aplicación pueda enviarle mensajes. :

icacls dbgview.exe /setintegritylevel low 

y si no te gusta la idea de establecer de forma permanente dbgview a baja integridad (que podría tener registros de ahorro y otras cosas de un poco de dolor, ya que sólo ir a la tienda de baja integridad) puede ejecutar una instancia particular de dbgview a baja integridad utilizando la herramienta Sysinternals 'psexec:

psexec -l dbgview 

Por último, si todo lo que te preocupa es la cantidad de tiempo que se tarda en cargar el depurador de VS para insertarse en el proceso, se puede utilizar un depurador de línea de comandos (como ntsd.exe o cdb.exe). Ntsd.exe viene con Windows, pero una versión más nueva viene con el "Debugging Tools for Windows" package, que también incluye el cdb.exe muy similar.

+0

Esto suena extraño, ¿tiene más detalles sobre por qué esto funcionaría? El seguimiento usa OutputDebugString, no mensajes. – jdigital

+3

Mi recuerdo es que OutputDebugString utiliza una sección de memoria compartida con un mutex y eventos para pasar los datos. Supongo (posiblemente incorrectamente) que se bloquea la apertura de una sección compartida o eventos de señalización desde un proceso de baja integridad a un proceso de integridad más alto. –

+0

Dio psexec a go - funciona muy bien. Recuerdo vagamente problemas similares en el pasado. Olvidé cómo lo resolví. Ejecutar DbgView a bajo hace el trabajo, ¡pero es bastante molesto! En lo que respecta al tiempo, su Visual Studio carga los símbolos IE que se están tomando el tiempo. Probablemente podría acelerarlo un poco. – Mat

1

Para sus pruebas rápidas, es Visual Studio aún en marcha? Si es así, eso podría causar este problema.

+0

Sigo tu línea de pensamiento: Visual Studio se está ejecutando, pero no depurando. – Mat

+0

Así que ciérrelo y vea si funciona DebugView. – jdigital

+0

Solo para confirmar: al ejecutar Visual Studio, intercepta los mensajes y evita que se vean en DebugView. NO es suficiente simplemente no ejecutar una sesión de depuración en él. Como solución temporal, parece que si inicia DebugView antes de Visual Studio, aún muestra todos los mensajes. – Cray

Cuestiones relacionadas