Sugerencias sobre el uso WDEB386

Seleccione idioma Seleccione idioma
Id. de artículo: 72379 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

El depurador WDEB386 proporciona en el Kit de desarrollo de software (SDK) de Windows tiene muchas características de un valor incalculable; sin embargo, también tiene un número de puntos débiles. Este artículo describe algunas de las cosas que WDEB386 puede y no y proporciona unas cuantas sugerencias de uso.

Más información

Razones para utilizar WDEB386

El depurador WDEB386 se escribió originalmente como una herramienta interna de Microsoft para desarrollar y depurar la capa de modo mejorado de Windows. Como tal, mantiene un número de las características avanzadas que son necesarios para depurar un multitarea, el sistema en modo protegido. Al mismo tiempo, la naturaleza de bajo nivel de este entorno de depuración puede ser pesado y confuso en muchas situaciones. Sin embargo, hay muchas situaciones donde este depurador es especialmente útil o incluso totalmente necesario, para diagnosticar problemas como la siguiente:

  • Seguimiento mediante código de bajo nivel que no se trazará CVW
  • Ver la memoria virtual o lineal o físico
  • Ver avanzada de datos de procesador 386, tales como el GDT LDT, IDT y todos los PMODE registra
  • Seguimiento de los controladores de interrupciones de hardware
  • Seguimiento terminate-and-stay-resident (TSR) programas o controladores de dispositivo MS-DOS
  • Mostrar el estado de máquinas virtuales (MV)
  • Supervisión de todas las interrupciones y excepciones en modo mejorado
  • Desarrollar y depurar dispositivos virtuales (VxD) para el modo mejorado
Esto no es una lista exhaustiva; sin embargo, debe servir para ilustrar algunas de las situaciones donde normalmente se utilizaría el WDEB386 depurador.

Dividir en el depurador al iniciar

Una opción de línea de comandos que no se ha mencionado en el capítulo 9 del manual "Microsoft Windows Software Development Kit Tools" es la opción /B. Especificar/b en la línea de comandos WDEB386 indica al depurador para detener la ejecución durante el inicio de Windows. Esta opción no garantiza que el depurador detendrá la ejecución en la primera instrucción ejecutar. De hecho, el depurador no detiene la ejecución hasta que después Windows cargado vxd, inmediatamente anterior a inicialización.

Dividir en el depurador en

Cuando se ejecuta WDEB386, puede se detiene la ejecución de la secuencia de instrucciones actual con la combinación de teclas CTRL + ALT + pet. Esto no detendrá la ejecución en la ubicación precisa de la interrupción de teclado; dejará de ejecutarse en una ubicación en el Administrador de máquina virtual (VMM). Puede inspeccionar el contenido del registro de la máquina virtual interrumpida mediante el comando .VM (vea más adelante).

Como alternativa, se pueden establecer puntos de interrupción con el comando BP o con instrucciones de interrupción reunidas directamente en el código. Puede utilizarse un entero de 1 o instrucción INT 3. La diferencia es que un entero de 1 se generan un mensaje de "interrupción de traza inesperado" y detener en la instrucción 1 después de INT. Este mensaje no indica una condición de error y puede omitirse. 3 Un INT se interrumpir directamente en el entero y no producir el mensaje. Una vez que se alcanza una instrucción de punto de interrupción, se puede quitar permanentemente con el comando "Z". Este comando reemplaza el lenguaje de máquina INT con NOPs (no operación).

Además, si el hardware necesario está disponible, la interrupción nonmaskable (NMI) puede utilizarse para interrumpir el depurador. Esto normalmente significa tener un botón de "STOP" externo conectado a una tarjeta de depuración instalada en una ranura del equipo de desarrollo. Algunos equipos pueden tienen la capacidad de conectar un botón del panel frontal de la línea de NMI en el bus de máquina. En cualquier caso, el uso de NMI tiene la ventaja de poder dividir en un equipo que haya "bloqueado" con interrupciones deshabilitadas.

Para los programadores desarrollar controladores de dispositivo virtual (VxD), la macro Debug_Out está disponible para combinar enviar una cadena ASCII a la depuración terminal y ejecutar un 1 INT, que se interrumpa su depuración.

Utilizar WDEB386 en modo estándar

El depurador WDEB386 se proporciona principalmente para la depuración en modo mejorado; sin embargo, también se puede usar en modo estándar en un procesador 386. En general, la operación del WDEB386 Depurador en modo estándar es el mismo como en modo mejorado, excepto en que una serie de características está disponible, especialmente en Windows 3.0.

Por ejemplo, el "/ b" opción salto en el inicio sólo está disponible en modo mejorado en Windows 3.0. Está disponible en modo estándar en Windows 3.1. Muchos de los comandos "dot" (precedidos de un período de comandos) se proporcionan para modo mejorado y no están disponibles en modo estándar.

Determinar el estado del procesador de

Una vez haya concedido control al depurador, el carácter de símbolo del sistema utilizado proporcionará el estado de modo protegido del procesador. La lista siguiente muestra qué caracteres pueden mostrarse y el significado de cada uno:
    Character  Meaning
    ---------  -------

       >       The processor is in real mode
       #       The processor is in protected mode
       -       The processor is in virtual 8086 mode
				
el procesador está en modo será una buena indicación de qué código se está ejecutando. Por ejemplo, si el símbolo del sistema es un "-" (guión), la secuencia de instrucción actual en algún lugar está en MS-DOS, el BIOS, o posiblemente en un controlador de dispositivo TSR o MS-DOS. Esto es porque la capa de modo mejorado de Windows debe cambiar el procesador al modo de V86 para ejecutar funciones de MS-DOS o BIOS. Como alternativa, si el símbolo del sistema es un "#" (signo de número), se está ejecutando código en modo protegido--que puede ser una aplicación, DLL o incluso la capa de modo mejorado--.

Uno de los aspectos más importantes de "saber lo que se está ejecutando" cuando se utiliza WDEB386 en Windows en modo mejorado es algún conocimiento de WIN386.EXE. Este módulo está formado por el VMM (Administrador de equipo virtual) y todos los VxD (dispositivos virtuales). Estos componentes se conocen colectivamente a menudo como "capa de modo mejorado", "anillo cero código" o simplemente "WIN386". En Windows 3.0 y 3.1 y Windows para trabajo en grupo, las versiones 3.0, 3.1 y 3.11, si el depurador de símbolo del sistema es "#" y el valor del registro CS es 0028h, significa que el equipo está detenido en WIN386.

Detener en WIN386 puede o no es deseable. Por ejemplo, la capacidad de WDEB386 para detener en WIN386 permite a los VxD desarrolladores paso a paso a través del VxD en cuestión. Sin embargo, una aplicación o el programador del controlador de dispositivo con WDEB386 debido su "conocimiento del modo protegido" no puede tener ningún interés en lo que hace WIN386. En cualquier caso, el reconocimiento el componente del sistema asociado con la secuencia de ejecución actual es un paso crucial en uso WDEB386 eficaz.

Mediante los comandos de punto

Probablemente la parte más interesante (y confusa) acerca de cómo utilizar WDEB386 está relacionada con los comandos "dot", que son comandos precedidos por un período. Una de las causas de la confusión es que a menos que está instalada la versión de depuración de WIN386.EXE, la mayoría de los comandos de punto no están disponibles. Por ejemplo, si el mensaje siguiente se muestra mientras se ejecuta Windows en modo mejorado
Win386 no cargado, no depurar versión o no responde
Probablemente significa que está instalada la versión comercial de WIN386.EXE. Para obtener más información acerca de instalar la versión de depuración de WIN386, busque las palabras:
prod(winddk) y wdeb386
Además, este mensaje aparecerá siempre si se utiliza WDEB386 cuando Windows está en modo estándar.

Comandos de volcado de punto

Conceptualmente, los comandos de punto son comandos "externas", o comandos que funcionan en las estructuras de datos y operaciones específicos del entorno de Windows. Por ejemplo, el comando "D" (volcar) muestra las ubicaciones de memoria como se esperaría de un depurador, pero el comando de ".DG" muestra información del montón global de Windows en casi la misma forma que la aplicación HEAPWALK.

La mayoría de los comandos .dx no requieren la versión de depuración de WIN386.EXE y también está disponible en modo estándar. El resto de los comandos descritos en este artículo requiere la versión depuración de WIN386.EXE y mejorado de modo de operación. Una vez que todo está instalado correctamente, el ".?" comando de Ayuda debe proporcionar una referencia rápida en línea de los comandos de punto.

Una diferencia importante que debe realizarse es la diferencia entre los comandos ".DS" y "K". El comando "K" recorrerá la pila de Windows mientras el depurador se detiene en aplicaciones basadas en Windows o código de biblioteca dynamic-link (DLL). Sin embargo, si el depurador se seguimiento mediante WIN386 código, el comando "K" no producirá ningún resultado útil. Por este motivo, el comando ".DS" se ha proporcionado para mostrar la pila WIN386. Esta es otra demostración de la importancia de "saber lo que se ejecuta," como se mencionó anteriormente en este artículo.

Comandos de la máquina virtual de punto

WDEB386 se diseñó originalmente para depurar la capa de modo mejorado de Windows; por tanto, puede haber situaciones en que el depurador se detiene en la mitad de WIN386. Por ejemplo, si se detiene la ejecución mediante CTRL + ALT + PET SIS, el equipo no se detendrá inmediatamente en la instrucción que se estaba ejecutando, pero en su lugar en un punto de interrupción en código WIN386. Por lo tanto, los registros generales no suelen contienen todo lo que será de uso para un programador intenta depurar un controlador o una aplicación.

Sin embargo, el estado operativo de la actual máquina virtual puede mostrarse mediante los comandos .vx. Por ejemplo, ".VM" se muestran los indicadores de estado, registrar contenido, la instrucción actual y una parte de la pila de la actual máquina virtual. Escribir ".VL" producirá una lista de todas las máquinas virtuales en el sistema. Estos comandos pueden utilizarse para obtener una visión general de la aplicación, estado de ejecución DLL, de MS-DOS o de BIOS, como oposición al estado de WIN386.

Comandos de la memoria de punto

Los comandos de .mx muestran información avanzada sobre el estado de memoria. Muchas de las funciones imprimir información de WIN386 interno en un formato más legible. Dos comandos que son inmediatamente útiles son ".ML" y ".MP". Estos comandos convertir las direcciones de lineal a físico y viceversa.

Comandos de seguimiento de punto

Los comandos. "t" y ".S" se proporcionan para mantener la información de seguimiento de interrupción. Las entradas de seguimiento describen qué interrupciones se han producido, la dirección de bloque VM y la dirección de instrucción interrumpida. Estos comandos pueden ser muy útiles en el seguimiento de problemas (errores) que no producen los síntomas inmediatos.

Comandos de dispositivo de punto

WIN386 y WDEB386 proporcionan la capacidad para un VxD individual mostrar información sobre su propio estado de funcionamiento. En general, el usuario puede solicitar esta información desde un VxD de depuración escribiendo .nombre en el símbolo de WDEB386, donde "nombre" es el nombre de los VxD. Por ejemplo, escribir .VDMAD genera información sobre el estado del dispositivo DMA virtual.

Emitir un comando de dispositivo de punto hará que el VMM enviar un mensaje "Debug_Query" en el VxD. El VxD no es necesario hacer nada en respuesta a este mensaje y, de hecho muchas VxD no producen ningún resultado de depuración. En general, resultado producido por vxd de esta manera no está documentado y sólo se proporciona como un medio de depuración en el VxD en cuestión. Los desarrolladores de VxD deseen aprovechar este mecanismo para mostrar estructuras de datos importantes que definen el estado de dispositivo virtual.

Resumen de comandos de punto

Los comandos de punto se resumen en 9.6 de sección (página 9-48) del manual "Herramientas de Kit de desarrollo de Microsoft Windows software". Una pantalla en línea de referencia rápida está disponible con el ".?" comando.

Nota: Un número de los comandos de punto no está documentado en el manual de herramientas SDK. Por ejemplo, se describe el formato de comando de dispositivo punto pero no se proporciona el resultado real producido por dispositivos virtuales específicos. Hay una serie de razones para esto:

  • El resultado producido por los comandos punto normalmente no se genera el depurador WDEB386, sino los componentes de WIN386. Estos componentes se revisado y se actualiza más dinámicamente que el depurador, y por lo tanto, es probable que cambiar la información generada por estos componentes.
  • El resultado es a menudo información muy específica sobre el VxD propio y no normalmente serían útil en una situación típica de depuración.

Propiedades

Id. de artículo: 72379 - Última revisión: jueves, 22 de julio de 2004 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.0
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.1
Palabras clave: 
kbmt KB72379 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 72379
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com