2011-01-19 20 views
13

No recibo información de depuración al depurar en_windows_7_checked_build_dvd_x86_398742. No puedo ver ni siquiera mi propia información de rastreo (ATLTRACE). En el lado opuesto, Windows XP Checked funciona como un encanto. Obtengo "Bad QueryIdType: 5" msg en la sesión de depuración inicia con Windows 7. La depuración del kernel está configurada correctamente, obviamente. Por favor ayuda ...Kernel trace Windows 7 WinDbg

Respuesta

13

Bien, encontré la solución here. Se puede ayudar a la gente:

El problema: Su DbgPrint o mensajes KdPrint no aparecen en WinDbg (o KD) cuando se ejecuta el controlador en Windows Vista.

¿La razón? Vista asigna automáticamente DbgPrint y amigos a DbgPrintEx. Ahora, puede recordar que DbgPrintEx le permite controlar las condiciones bajo las cuales los mensajes serán enviados al depurador del kernel al filtrar mensajes a través del nombre y nivel de un componente en la llamada de función y una máscara de filtro asociada en el registro o en la memoria.

En Vista, DbgPrint y KdPrint están asignados al componente "DPFLTR_DEFAULT_ID" y al nivel "DPFLTR_INFO_LEVEL". Por supuesto, en Vista, la salida xxx_INFO_LEVEL está deshabilitada de forma predeterminada. Por lo tanto, de forma predeterminada, su DbgPrint/KdPrint no se envía al depurador del kernel.

¿Cómo corregirlo? Dos opciones:

  • Salida de habilitación de mensajes DbgPrint/KdPrint por defecto --open la tecla HKLM\SYSTEM\CurrentControlSet\Session Manager\Debug Print Filter. Con esta clave, cree un valor con el nombre DEFAULT Establezca el valor de esta clave igual al valor DWORD 8 para habilitar la salida xxx_INFO_LEVEL y la salida xxx_ERROR_LEVEL. O intente configurar la máscara a 0xF para que obtenga todos los resultados. Debe reiniciar para que estos cambios surtan efecto.

  • Cambie específicamente el mástil del filtro de componentes para DPFLTR. En versiones anteriores de Vista/LH usted cambió la máscara de impresión predeterminada especificando un valor de máscara para el DWORD en Kd_DPFLTR_MASK ("ed Kd_DPFLTR_MASK"). En la compilación 5308 (el CTP de febrero de Vista), parece que la variable de máscara ha cambiado y necesita establecer el valor de máscara para el DWORD en Kd_DEFAULT_MASK ("ed Kd_DEFAULT_MASK). En cualquier caso, especifique 8 para habilitar DPFLTR_INFO_LEVEL salida además a DPFLTR_ERROR_LEVEL salida o 0xF para obtener todos los niveles de salida de

Consulte la documentación WDK para la lectura y filtrado de mensajes de depuración (seguir el camino:. Herramientas de desarrollo Driver \ Herramientas para la depuración Drivers \ Utilización del Código de depuración en un controlador \ Vista general del código de depuración) para obtener todos los detalles sobre el uso de DbgPrintEx/KdPrintEx. O consulte las herramientas de depuración para la documentación de Windows (Apéndice A) en DbgPrintEx.

15

pude solucionarlo desde dentro windbg, en Windows 7 32 bits:

ed Kd_DEFAULT_Mask 8 

De acuerdo con el artículo de MSDN, también puede utilizar el registro, pero hay que reiniciar el sistema para que surta efecto. Cree una clave DWORD bajo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter llamada DEFAULT con un valor de 8.

El al día la documentación de Microsoft está disponible aquí: http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx

1

Para activar la salida de mensajes DbgPrint/KdPrint por defecto la ruta del registro es "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ depuración filtro de impresión" Session Manger está debajo del control. El valor predeterminado normalmente es 0xf. Eso habilita todos los mensajes. Para establecer una máscara de bits mejor ajuste a sus necesidades que las informaciones se encuentran en https://docs.microsoft.com/de-de/windows-hardware/drivers/devtest/reading-and-filtering-debugging-messages#identifying-the-component-name

Si se toma Visual Studio 2015 o 2017, la configuración estándar no va a fijar dicha opción. Cuando comiences a trabajar con ejemplos, no olvides configurar este extra en Debug-Target.

Esto me ayudó en mi entorno de Windows 10 usando Windbg.

Un segundo problema estaba usando devcon en Windows 10 como se describe en el ejemplo de eco https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#install

En Bala "7 Localizar los archivos de los controladores incorporados" la transferencia de los archivos de los controladores necesarios para la depuración-Target y les carga con la devcon . Con Windows 10 también debe copiar el archivo de catálogo. De lo contrario, devcon.exe fallará como se describe. Por lo que deberá instalar también el certificado de prueba. Esto generalmente se hace cuando se prepara el entorno de depuración con Visual Studio 2015/2017. Simplemente vuelva a verificar con certmgr.