Instalación y configuración de WinDBG para analizar volcados de memoria. Herramientas de depuración de Windows: diagnóstico y reparación de herramientas de depuración BSOD para uso en Windows

Cuando ocurre una falla crítica, el sistema operativo Windows falla y muestra una pantalla azul de la muerte (BSOD). Contenido memoria de acceso aleatorio y toda la información sobre el error que ocurre se escribe en el archivo de intercambio. La próxima vez arrancando Windows se crea un volcado de memoria c información de depuración basado en datos almacenados. Se crea una entrada de error crítico en el registro de eventos del sistema.

¡Atención! No se crea un volcado de memoria si el subsistema del disco falla o se produce un error crítico durante la etapa inicial del arranque de Windows.

Tipos de volcados de memoria de Windows

Usando el sistema operativo actual Windows 10 como ejemplo ( Servidor de windows 2016) consideran los principales tipos de volcados de memoria que el sistema puede crear:

  • Mini volcado de memoria(256 KB). Este tipo de archivo contiene una cantidad mínima de información. Solo contiene el mensaje de error BSOD, información sobre los controladores, los procesos que estaban activos en el momento del bloqueo y qué proceso o subproceso del kernel causó el bloqueo.
  • Volcado de memoria del kernel. Normalmente es de tamaño pequeño: un tercio del tamaño de la memoria física. Un volcado de memoria del kernel es más detallado que un mini volcado. Contiene información sobre controladores y programas en modo kernel, incluye memoria asignada al kernel de Windows y la capa de abstracción de hardware (HAL), y memoria asignada a controladores y otros programas en modo kernel.
  • Volcado de memoria completo. El de mayor tamaño y requiere una memoria equivalente a la RAM de su sistema más el 1 MB que requiere Windows para crear este archivo.
  • Volcado de memoria automático. Corresponde a un volcado de memoria del kernel en términos de información. La única diferencia es la cantidad de espacio que utiliza para crear el archivo de volcado. Este tipo de archivo no existía en Windows 7. Se agregó en Windows 8.
  • Volcado de memoria activa. Este tipo elimina elementos que no pueden determinar la causa de una falla del sistema. Esto se agregó a Windows 10 y es especialmente útil si está utilizando una máquina virtual o si su sistema es un host Hyper-V.

¿Cómo habilitar el volcado de memoria en Windows?

Usando Win+Pausa, abra la ventana de configuración del sistema, seleccione " Opciones adicionales sistemas"(Configuración avanzada del sistema). En el " Además" (Avanzado), sección "" (Inicio y recuperación) haga clic en el botón " Opciones"(Ajustes). En la ventana que se abre, configure las acciones que se tomarán cuando el sistema falle. Comprobar el " Registrar eventos en el registro del sistema" (Escriba un evento en el registro del sistema), seleccione el tipo de volcado que se debe crear cuando el sistema falla. Si en la casilla de verificación " Reemplazar el archivo de volcado existente"(Sobrescribir cualquier archivo existente) marque la casilla, el archivo se sobrescribirá cada vez que haya una falla. Es mejor desmarcar esta casilla, así tendrás más información para analizar. También deshabilite Reiniciar automáticamente.

En la mayoría de los casos, un pequeño volcado de memoria será suficiente para analizar la causa del BSOD.

Ahora, cuando ocurre un BSOD, puede analizar el archivo de volcado y encontrar la causa del error. El minivolcado se guarda en la carpeta %systemroot%\minidump de forma predeterminada. Para analizar el archivo de volcado, recomiendo usar el programa. WinDBG(Depurador del kernel de Microsoft).

Instalación de WinDBG en Windows

Utilidad WinDBG incluido en " SDK de Windows 10"(SDK de Windows 10). .

El archivo se llama winsdksetup.exe, tamaño 1,3 MB.

Ejecute la instalación y elija qué desea hacer exactamente: instalar el paquete en esta computadora o descargarlo para instalarlo en otras computadoras. Instalemos el paquete en la computadora local.

Puede instalar el paquete completo, pero para instalar solo la herramienta de depuración, seleccione Herramientas de depuración para Windows.

Después de la instalación, los accesos directos de WinDBG se pueden encontrar en el menú de inicio.

Configurar la asociación de archivos .dmp con WinDBG

Para abrir archivos de volcado con un simple clic, asigne la extensión .dmp a la utilidad WinDBG.

  1. Abierto línea de comando como administrador y ejecute los comandos para un sistema de 64 bits: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe –IA
    para sistema de 32 bits:
    C:\Archivos de programa (x86)\Windows Kits\10\Debuggers\x86
    windbg.exe –IA
  2. Como resultado, los tipos de archivos: .DMP, .HDMP, .MDMP, .KDMP, .WEW se asignarán a WinDBG.

Configurar un servidor de símbolos de depuración en WinDBG

Los símbolos de depuración (símbolos de depuración o archivos de símbolos) son bloques de datos generados durante la compilación de un programa junto con el archivo ejecutable. Dichos bloques de datos contienen información sobre nombres de variables, funciones llamadas, bibliotecas, etc. Estos datos no son necesarios al ejecutar el programa, pero son útiles al depurarlo. Los componentes de Microsoft se compilan con símbolos distribuidos a través de Microsoft Symbol Server.

Configurar WinDBG para uso de microsoft Servidor de símbolos:

  • Abra WinDBG;
  • Ir al menú Archivo –> Ruta del archivo de símbolos;
  • Escriba una línea que contenga la URL para descargar símbolos de depuración del sitio web de Microsoft y la carpeta para guardar el caché: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols En el ejemplo, el caché se descarga a la carpeta E:\Sym_WinDBG, puede indicar cualquiera.
  • No olvides guardar los cambios en el menú. Archivo–>Guardar espacio de trabajo;

WinDBG buscará símbolos en la carpeta local y, si no encuentra los símbolos necesarios en ella, los descargará automáticamente del sitio especificado. Si desea agregar su propia carpeta de símbolos, puede hacerlo así:

SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:\Symbols

Si no tiene conexión a Internet, primero descargue el paquete de símbolos del recurso Paquetes de símbolos de Windows.

Análisis de un volcado de memoria en WinDBG

El depurador WinDBG abre el archivo de volcado y descarga los símbolos necesarios para la depuración desde una carpeta local o desde Internet. No puede utilizar WinDBG durante este proceso. En la parte inferior de la ventana (en la línea de comando del depurador) aparece el mensaje Depurado no conectado.

Los comandos se ingresan en la línea de comando ubicada en la parte inferior de la ventana.

Lo más importante a lo que hay que prestar atención es el código de error, que siempre se indica en hexadecimal y tiene la forma 0xXXXXXXXXX(indicado en una de las opciones - STOP: , 02/07/2019 0008F, 0x8F). En nuestro ejemplo, el código de error es 0x139.

¡El depurador ofrece ejecutar el comando!analyze -v, simplemente coloque el mouse sobre el enlace y haga clic. ¿Para qué sirve este comando?

  • Realiza un análisis preliminar de volcado de memoria y proporciona información detallada para iniciar el análisis.
  • Este comando mostrará el código STOP y el nombre simbólico del error.
  • Muestra la pila de llamadas de comando que provocaron el bloqueo.
  • Además, aquí se muestran los fallos de dirección IP, proceso y registro.
  • El equipo puede proporcionar recomendaciones preparadas para resolver el problema.

¡Los puntos principales a los que debe prestar atención al analizar después de ejecutar el comando! analizar –v (listado incompleto).

1: kd> !analizar -v


* *
* Análisis de verificación de errores *
* *
*****************************************************************************
Nombre simbólico del error STOP (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Descripción del error (Un componente del kernel ha dañado una estructura de datos crítica. Esta corrupción podría permitir que un atacante obtenga el control de esta máquina):

Un componente del kernel ha dañado una estructura de datos crítica. La corrupción podría permitir potencialmente que un usuario malintencionado obtenga el control de esta máquina.
Argumentos de error:

Argumentos:
Arg1: 0000000000000003, A LIST_ENTRY se ha dañado (es decir, se ha eliminado dos veces).
Arg2: ffffd0003a20d5d0, dirección del marco trampa para la excepción que provocó la verificación de errores
Arg3: ffffd0003a20d528, Dirección del registro de excepción para la excepción que causó la verificación de errores
Arg4: 0000000000000000, reservado
Detalles de depuración:
------------------

El contador muestra cuántas veces el sistema falló con un error similar:

CLIENTE_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

Código de error DETENER en formato abreviado:

BUGCHECK_STR: 0x139

El proceso durante el cual ocurrió la falla (no necesariamente la causa del error, justo en el momento de la falla este proceso se estaba ejecutando en la memoria):

NOMBRE_PROCESO: sqlservr.exe

Descripción del código de error: el sistema ha detectado un desbordamiento del búfer de pila en esta aplicación, lo que podría permitir que un atacante obtenga el control de esta aplicación.

ERROR_CODE: (NTSTATUS) 0xc0000409: el sistema detectó un desbordamiento de un búfer basado en pila en esta aplicación. Esta saturación podría permitir que un usuario malintencionado obtenga el control de esta aplicación.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409: el sistema detectó un desbordamiento de un búfer basado en pila en esta aplicación. Esta saturación podría permitir que un usuario malintencionado obtenga el control de esta aplicación.

Última llamada en la pila:

LAST_CONTROL_TRANSFER: de fffff8040117d6a9 a fffff8040116b0a0

Pila de llamadas en el momento del fallo:

PILA_TEXTO:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528: nt!KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: nt!KiBugCheckDispatch+0x69
ffffd000`3a20d3f0 fffff804`0117c150: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt!KiFastFailDispatch+0xd0
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9: nt!KiRaiseSecurityCheckFailure+0x3d0
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951: ¡nt! ?? ::FNODOBFM::`cadena"+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600: nt!IopSynchronousServiceTail+0x379
ffffd000`3a20d990 fffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380: nt!NtWriteFile+0x694
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt!KiSystemServiceCopyEnd+0x1 3
000000ee`f25ed2b8 00000000`00000000: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: 0x00007ffb`47530 7da

La sección del código donde ocurrió el error:

SEGUIMIENTO_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr, 0
FALLO_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: propietario de la máquina

El nombre del módulo en la tabla de objetos del kernel. Si el analizador pudo detectar conductor problemático, el nombre se muestra en los campos MODULE_NAME e IMAGE_NAME:

NOMBRE_MÓDULO:nt
NOMBRE_IMAGEN: ntkrnlmp.exe

1: kd> lmvm nt
Explorar la lista completa de módulos
Archivo de imagen de símbolo cargado: ntkrnlmp.exe
Archivo de imagen de memoria asignada: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
Ruta de la imagen: ntkrnlmp.exe
Nombre de la imagen: ntkrnlmp.exe
Nombre interno: ntkrnlmp.exe
Nombre de archivo original: ntkrnlmp.exe
Versión del producto: 6.3.9600.18946
Versión del archivo: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

En el ejemplo dado, el análisis apuntó al archivo del núcleo ntkrnlmp.exe. Cuando el análisis de volcado de memoria apunta a un controlador del sistema (como win32k.sys) o un archivo del kernel (como en nuestro ejemplo ntkrnlmp.exe), lo más probable es que Este archivo no es la causa del problema. Muy a menudo resulta que el problema radica en el controlador del dispositivo, Configuración del BIOS o mal funcionamiento del equipo.

Si ve que el BSOD fue causado por un controlador de terceros, su nombre se indicará en los valores MODULE_NAME e IMAGE_NAME.

Por ejemplo:

Ruta de la imagen: \SystemRoot\system32\drivers\cmudaxp.sys
Nombre de la imagen: cmudaxp.sys

Abra las propiedades del archivo del controlador y verifique su versión. En la mayoría de los casos, el problema con los controladores se soluciona actualizándolos.

el 22 de junio de 2010

Anteriormente, Windbg estaba disponible para descargar por separado. Pero para las últimas versiones, Microsoft lo mantiene como parte del SDK de Windows. Encuentre los enlaces de descarga a continuación.

ventanas 10

La última versión de Windbg para Windows 7 se puede descargar desde el enlace https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk

ventana 7

Descargue los instaladores desde los enlaces anteriores. Tenga en cuenta que esto no descarga todo el SDK, es sólo un instalador. Una vez que ejecute el archivo, puede seleccione qué herramientas desea descargar. Si solo está interesado en Windbg, puede excluir todo lo demás y seleccionar solo "Herramientas de depuración" en "Utilidades comunes".

El paquete anterior instala la versión windbg 6.12. Si desea instalar rápidamente windbg, puede optar por la versión anterior (6.11) que se puede descargar desde
el enlace que aparece al final de esta publicación.

Una vez que realice la instalación, puede encontrar el programa en Menú Inicio -> Todos los programas -> Herramientas de depuración para Windows -> Windbg

Presentando WinDBG - Parte 1

Alejandro Antipov

WinDBG es un excelente depurador. Puede que no tenga una interfaz muy fácil de usar y no tenga un fondo negro de forma predeterminada, pero es uno de los depuradores más potentes y estables del sistema operativo Windows actualmente. En este artículo, te presentaré los conceptos básicos de WinDBG para que puedas comenzar a utilizarlo.


WinDBG es un excelente depurador. Puede que no tenga una interfaz muy fácil de usar y no tenga un fondo negro de forma predeterminada, pero es uno de los depuradores más potentes y estables del sistema operativo Windows actualmente. En este artículo, te presentaré los conceptos básicos de WinDBG para que puedas comenzar a utilizarlo.

Este es el primer artículo de una serie dedicada a WinDBG. Lista de todos los artículos incluidos en esta serie:

  • Parte 1: instalación, interfaz, símbolos, depuración remota/local, sistema de ayuda, módulos, registros.
  • Parte 2: puntos de interrupción.
  • Parte 3: inspección de la memoria, depuración del programa paso a paso, consejos y trucos.

En este artículo veremos la instalación y la conexión a un proceso, y en los siguientes artículos veremos los puntos de interrupción, la depuración paso a paso y la inspección de la memoria.

Instalación de WinDBG

En comparación con Windows 7, el proceso de instalación de WinDBG en Windows 8 ha sufrido cambios menores. En esta sección veremos cómo instalar un depurador para ambos. sistemas operativos.

Instalación de WinDBG en Windows 8

En Windows 8, WinDBG está incluido en el kit de controladores de Windows (WDK). Puede instalar Visual Studio y WDK, o instalar el paquete de herramientas de depuración para Windows 8.1 por separado, que incluye WinDBG.

El instalador le preguntará si desea instalar WinDBG localmente o descargar el paquete de desarrollo completo para otra computadora. Este último es esencialmente el equivalente instalador fuera de línea, lo cual es muy conveniente si desea instalar el paquete en otros sistemas en el futuro.

Figura 1: Selección del tipo de instalación

En la siguiente ventana, debe desmarcar todos los elementos excepto "Herramientas de depuración para Windows" y hacer clic en el botón "Descargar".

Una vez que el instalador haya terminado su trabajo, vaya al directorio donde se descargó el paquete (por defecto es c:\Users\Username\Downloads\Windows Kits\8.1\StandaloneSDK) y siga el procedimiento de instalación.

Instalación de WinDBG en Windows 7 y versiones anteriores

Para Windows 7 y versiones anteriores, WinDBG es parte del paquete "Herramientas de depuración para Windows" que se incluye con el SDK de Windows y .Net Framework. Se le pedirá que descargue el instalador y luego seleccione "Herramientas de depuración para Windows" durante el proceso de instalación.

Durante la instalación, selecciono la opción "Herramientas de depuración" en "Paquetes redistribuibles" para crear un instalador independiente que facilite las instalaciones futuras.

Figura 2: Selección de opciones de instalación para crear un instalador independiente

Una vez completada la instalación, debería tener instaladores WinDBG para varias plataformas (en el directorio c:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows\).

Figura 3: Carpeta con instaladores de WinDBG para varias plataformas

Interfaz WinDBG

Figura 4: apariencia de WinDBG

La primera vez que ves apariencia WinDGB, te darás cuenta de que el depurador es terriblemente simple. La mayoría de las funciones de WinDBG se aprenden durante la depuración del proceso. En lugar de dedicar tiempo a describir la interfaz, en las siguientes secciones cubriremos sólo los puntos más importantes.

Lo más básico que necesitas saber sobre la interfaz del depurador es la ventana de comandos, que consta de dos áreas. Primera área: una ventana donde se muestra el resultado de la ejecución del comando. Segunda área: un pequeño campo de texto para ingresar comandos.

Figura 5: Ventana de comandos de WinDBG

Símbolos

En la mayoría de los casos, WinDBG no requiere ninguna configuración especial y funciona correctamente desde el primer momento. Pero una cosa importante que hay que configurar son los personajes. Los símbolos son archivos que se generan junto con el archivo ejecutable cuando se compila un programa y contienen información de depuración (funciones y nombres de variables). La información de depuración le permite examinar la funcionalidad de una aplicación mientras la depura o la desensambla. Muchos componentes de Microsoft se compilan con símbolos que se distribuyen a través de Microsoft Symbol Server. Con el resto de los archivos ejecutables, no todo es tan color de rosa: muy rara vez se incluyen con la aplicación archivos con información de depuración. En la mayoría de los casos, las empresas restringen el acceso a dicha información.

Para configurar WinDBG para usar Microsoft Symbol Server, vaya a Archivo: Ruta del archivo de símbolos y establezca la ruta en SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols. Por supuesto, es un poco extraño que se utilicen asteriscos como separador. Después de configurar Microsoft Symbol Server, los símbolos se descargarán a la carpeta C:\Symbols.

Figura 6: Configuración del servidor de símbolos de Microsoft

WinDBG cargará automáticamente símbolos para archivos binarios cuando sea necesario. También puedes agregar tu propia carpeta de símbolos, como esta:

SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;c:\SomeOtherSymbolFolder

Agregar símbolos durante la depuración

Si necesita importar símbolos durante la depuración, puede hacerlo usando .sympath (aparecerá una ventana de comando cuando se conecte al proceso). Por ejemplo, para agregar la carpeta c:\SomeOtherSymbolFolder, ingrese el siguiente comando:

0:025> .sympath+ c:\AlgunaOtraCarpetaDeSímbolos
La ruta de búsqueda de símbolos es: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;c:\SomeOtherSymbolFolder
La ruta de búsqueda de símbolos ampliada es: srv*c:\symbols*http://msdl.microsoft.com/download/symbols;c:\someothersymbolfolder

Es una buena idea recargar los símbolos después de agregar o cambiar rutas:

0:025> .recargar
Recargando módulos actuales
................................................................
...............................................

Comprobando los símbolos cargados

Para ver qué módulos tienen símbolos cargados, puede usar el comando x*!. Aunque WinDBG solo carga símbolos según sea necesario, el x*! mostrará los símbolos que se pueden cargar. Puede forzar la carga de los símbolos usando el comando ld * (esto puede tardar un poco y puede detener el proceso yendo a Debug:Break).

Ahora podemos ver los símbolos de cada módulo.

Figura 8: Lista de símbolos

Depurar un proceso local

Al depurar un proceso local, tiene dos opciones:

  1. Conéctese a un proceso que ya se está ejecutando.
  2. Inicie el proceso a través de WinDBG.

Cada método tiene sus propias ventajas y desventajas. Si, digamos, ejecuta un programa a través de WinDBG, entonces tendrá acceso a algunas opciones de depuración especiales (por ejemplo, depuración de montón) que pueden provocar que la aplicación falle. Por otro lado, también hay programas que fallan cuando se les adjunta un depurador. Algunas aplicaciones (especialmente el malware) comprueban la presencia de un depurador en el sistema durante el inicio y, en consecuencia, en este caso tiene sentido aferrarse a un proceso que ya se está ejecutando. A veces estás depurando un servicio de Windows que establece algunos parámetros durante el inicio, por lo que para simplificar el proceso de depuración, también es mejor conectarse a un proceso en ejecución en lugar de ejecutar el servicio a través de un depurador. Algunas personas afirman que ejecutar un proceso a través de un depurador tiene un impacto grave en el rendimiento. En definitiva, prueba ambos y elige el que más te convenga. Si por alguna razón prefieres un método en particular, ¡comparte tu opinión en los comentarios!

Iniciando el proceso

Si está depurando una aplicación independiente que se ejecuta localmente y no se comunica con la red, es posible que desee ejecutarla a través de WinDBG. Sin embargo, esto no significa que no pueda conectarse a un proceso que ya se está ejecutando. Elija el método que sea más conveniente para usted.

Iniciar el proceso no es difícil. Vaya a "Archivo: Abrir ejecutable" y seleccione el archivo ejecutable que desea depurar. También puede especificar argumentos o establecer el directorio de inicio:

Figura 9: Selección Archivo ejecutable para depurar

Proceso de conexión

Conectarse a un proceso que ya se está ejecutando tampoco es difícil. Sin embargo, tenga en cuenta que en algunos casos puede llevar tiempo encontrar el proceso exacto que desea depurar. Por ejemplo, algunos navegadores crean un proceso principal y luego varios procesos más para cada pestaña. Por lo tanto, dependiendo del volcado de memoria que esté depurando, es posible que desee conectarse al proceso asociado con la pestaña en lugar del proceso principal.

Para adjuntar a un proceso que ya se está ejecutando, vaya a "Archivo: Adjuntar a un proceso" y luego seleccione el PID o el nombre del proceso. Recuerda que debes tener los derechos correspondientes para unirte al proceso.

Figura 10: Seleccionar el proceso al que conectarse

Si, después de conectarse, la aplicación pausa su funcionamiento, puede utilizar el modo "Noninvaise" marcando la casilla correspondiente.

Depurar un proceso remoto

Es posible que en ocasiones necesites depurar un proceso en un sistema remoto. Sería mucho más conveniente resolver este problema usando un depurador local, en lugar de usar máquina virtual o RDP. O quizás esté depurando el proceso LoginUI.exe, al que solo se puede acceder cuando el sistema está bloqueado. En situaciones como estas, puede utilizar una versión local de WinDBG y conectarse a procesos de forma remota. Hay dos formas más comunes de resolver estos problemas.

Sesiones de depuración existentes

Si ya comenzó a depurar un programa localmente (conectándose o ejecutando un proceso a través de WinDBG), puede ingresar un comando específico y WinDBG iniciará un "escucha" al que el depurador remoto puede conectarse. Para hacer esto, use el comando .server:

Servidor tcp: puerto = 5005

Después de ejecutar el comando anterior, es posible que vea una advertencia como esta:

Figura 11: Mensaje de advertencia que puede aparecer después de ejecutar el comando para crear un oyente

WinDBG luego informará que el servidor se está ejecutando:

0:005> .servidor tcp:puerto=5005
0: -tcp remoto:Puerto=5005,Servidor=USUARIO-PC

Ahora puede conectarse desde un host remoto a una sesión de depuración existente yendo a "Archivo: Conectarse a una sesión remota" e ingresando algo como lo siguiente en el campo de texto: tcp:Puerto=5005,Servidor=192.168.127.138

Figura 12: Conexión remota a una sesión de depuración

Una vez conectado, recibirás confirmación en el cliente remoto:


Servidor iniciado. El cliente puede conectarse con cualquiera de estas líneas de comando
0: -tcp remoto:Puerto=5005,Servidor=USUARIO-PC
NOMBRE DE MÁQUINA\Usuario (tcp 192.168.127.138:13334) conectado el lunes 16 de diciembre a las 09:03:03 de 2013

y el mensaje en la versión local del depurador:

NOMBRE DE MÁQUINA\Usuario (tcp 192.168.127.138:13334) conectado el lunes 16 de diciembre a las 09:03:03 de 2013

Creando un servidor remoto

También puede crear un servidor separado con WinDBG, conectarse a él de forma remota y seleccionar un proceso para depurar. Esto se puede hacer utilizando el archivo dbgsrv.exe donde planea depurar procesos. Para iniciar dicho servidor, ejecute el siguiente comando:

dbgsrv.exe -t tcp:puerto=5005

Figura 13: Iniciar un servidor remoto

Nuevamente, es posible que recibas una advertencia de seguridad que debes aceptar:

Figura 14: Mensaje de seguridad que puede aparecer durante el inicio del servidor de depuración

Puede conectarse al servidor de depuración yendo a Archivo: Conectarse al código auxiliar remoto e ingresando la siguiente línea en el campo de texto: tcp:Puerto=5005,Servidor=192.168.127.138

Figura 15: Conexión al servidor de depuración

Una vez conectado, no recibirá ninguna señal de que se ha conectado, pero si va a "Archivo: Adjuntar a un proceso", verá una lista de procesos del servidor de depuración (donde se ejecuta dbgsrv.exe). Ahora puedes conectarte al proceso como si lo estuvieras haciendo localmente.

Sistema de ayuda

El sistema de ayuda en WinDBG es genial. Además de aprender algo nuevo, debería poder obtener información básica sobre un comando. Utilice el comando .hh para acceder a la Ayuda de WinDBG:

También puede obtener información de ayuda para un comando específico. Por ejemplo, para obtener ayuda con el comando .reload, utilice el siguiente comando:

windbg> .hh .recargar

O simplemente vaya a la sección Ayuda:Contenido.

Módulos

Mientras el programa se ejecuta, se importan varios módulos para proporcionar la funcionalidad de la aplicación. Por lo tanto, si sabe qué módulos importa la aplicación, podrá comprender mejor cómo funciona. En muchos casos, depurará el módulo específico cargado por el programa, en lugar del archivo ejecutable en sí.

Una vez conectado al proceso, WinDBG mostrará automáticamente los módulos cargados. Por ejemplo, a continuación se muestran los módulos después de conectarme a calc.exe:

Microsoft (R) Depurador de Windows Versión 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. Reservados todos los derechos.

*** espera con adjunto pendiente
La ruta de búsqueda de símbolos es: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
La ruta de búsqueda ejecutable es:
Carga de modificación: 00a70000 00b30000 C:\Windows\system32\calc.exe
ModLoad: 77630000 7776c000 C:\Windows\SYSTEM32\ntdll.dll
ModLoad: 77550000 77624000 C:\Windows\system32\kernel32.dll
ModLoad: 75920000 7596a000 C:\Windows\system32\KERNELBASE.dll
Carga de modificación: 76410000 77059000 C:\Windows\system32\SHELL32.dll
Carga de modificación: 77240000 772ec000 C:\Windows\system32\msvcrt.dll
ModLoad: 76300000 76357000 C:\Windows\system32\SHLWAPI.dll
Carga de modificación: 75cd0000 75d1e000 C:\Windows\system32\GDI32.dll
ModLoad: 75fa0000 76069000 C:\Windows\system32\USER32.dll
ModLoad: 777b0000 777ba000 C:\Windows\system32\LPK.dll
ModLoad: 774b0000 7754d000 C:\Windows\system32\USP10.dll
Carga de modificación: 73110000 732a0000 C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_
6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca\gdiplus.dll
Carga de modificación: 75a80000 75bdc000 C:\Windows\system32\ole32.dll
Carga de modificación: 76360000 76401000 C:\Windows\system32\RPCRT4.dll
Carga de modificación: 777c0000 77860000 C:\Windows\system32\ADVAPI32.dll
ModLoad: 75be0000 75bf9000 C:\Windows\SYSTEM32\sechost.dll
Carga de modificación: 76270000 762ff000 C:\Windows\system32\OLEAUT32.dll
ModLoad: 74590000 745d0000 C:\Windows\system32\UxTheme.dll
ModLoad: 74710000 748ae000 C:\Windows\WinSxS\x86_microsoft.windows.common-
ModLoad: 703d0000 70402000 C:\Windows\system32\WINMM.dll
ModLoad: 74c80000 74c89000 C:\Windows\system32\VERSION.dll
Carga de modificación: 77770000 7778f000 C:\Windows\system32\IMM32.DLL
Carga de modificación: 75c00000 75ccc000 C:\Windows\system32\MSCTF.dll
ModLoad: 74130000 7422b000 C:\Windows\system32\WindowsCodecs.dll
Carga de modificación: 74260000 74273000 C:\Windows\system32\dwmapi.dll
ModLoad: 756d0000 756dc000 C:\Windows\system32\CRYPTBASE.dll
Carga de modificación: 75e60000 75ee3000 C:\Windows\system32\CLBCatQ.DLL
Carga de modificación: 6ef10000 6ef4c000 C:\Windows\system32\oleacc.dll

Más adelante en el proceso de depuración, puede volver a mostrar esta lista usando el comando lmf:

0:005>lmf
inicio fin nombre del módulo
00a70000 00b30000 calc C:\Windows\system32\calc.exe
6ef10000 6ef4c000 oleacc C:\Windows\system32\oleacc.dll
703d0000 70402000 WINMM C:\Windows\system32\WINMM.dll
73110000 732a0000 gdiplus C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_
1.1.7600.16385_none_72fc7cbf861225ca\gdiplus.dll
74130000 7422b000 WindowsCodecs C:\Windows\system32\WindowsCodecs.dll
74260000 74273000 dwmapi C:\Windows\system32\dwmapi.dll
74590000 745d0000 UxTheme C:\Windows\system32\UxTheme.dll
74710000 748ae000 COMCTL32 C:\Windows\WinSxS\x86_microsoft.windows.common-
controles_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\COMCTL32.dll
74c80000 74c89000 VERSIÓN C:\Windows\system32\VERSION.dll
756d0000 756dc000 CRYPTBASE C:\Windows\system32\CRYPTBASE.dll
75920000 7596a000 KERNELBASE C:\Windows\system32\KERNELBASE.dll
75a80000 75bdc000 ole32 C:\Windows\system32\ole32.dll
75be0000 75bf9000 sechost C:\Windows\SYSTEM32\sechost.dll
75c00000 75ccc000 MSCTF C:\Windows\system32\MSCTF.dll
75cd0000 75d1e000 GDI32 C:\Windows\system32\GDI32.dll
75e60000 75ee3000 CLBCatQ C:\Windows\system32\CLBCatQ.DLL
75fa0000 76069000 USER32 C:\Windows\system32\USER32.dll
76270000 762ff000 OLEAUT32 C:\Windows\system32\OLEAUT32.dll
76300000 76357000 SHLWAPI C:\Windows\system32\SHLWAPI.dll
76360000 76401000 RPCRT4 C:\Windows\system32\RPCRT4.dll
76410000 77059000 SHELL32 C:\Windows\system32\SHELL32.dll
77240000 772ec000 msvcrt C:\Windows\system32\msvcrt.dll
774b0000 7754d000 USP10 C:\Windows\system32\USP10.dll
77550000 77624000 kernel32 C:\Windows\system32\kernel32.dll
77630000 7776c000 ntdll C:\Windows\SYSTEM32\ntdll.dll
77770000 7778f000 IMM32 C:\Windows\system32\IMM32.DLL
777b0000 777ba000 LPK C:\Windows\system32\LPK.dll
777c0000 77860000 ADVAPI32 C:\Windows\system32\ADVAPI32.dll

También puede averiguar la dirección de carga de un módulo específico utilizando el comando "lmf m":

0:005> lmf m kernel32
inicio fin nombre del módulo
77550000 77624000 kernel32 C:\Windows\system32\kernel32.dll

También puede obtener información sobre el encabezado de la imagen de un módulo en particular usando la extensión!dh ( Punto de exclamación indica una extensión):

0:005> !dh kernel32

Tipo de archivo: DLL
VALORES DEL ENCABEZADO DEL ARCHIVO
Máquina 14C (i386)
4 número de secciones
4A5BDAAD marca de fecha y hora lunes 13 de julio 21:09:01 2009

0 puntero de archivo a la tabla de símbolos
0 número de símbolos
Tamaño E0 del encabezado opcional
2102 características
Ejecutable
máquina de palabras de 32 bits
DLL

VALORES DE ENCABEZADO OPCIONALES
Magia 10B #
Versión del enlazador 9.00
Tamaño del código C4600
Tamaño C800 de datos inicializados
0 tamaño de datos no inicializados
510C5 dirección del punto de entrada
1000 código base
----- nuevo -----
77550000 base de imágenes
Alineación de 1000 secciones.
Alineación de 200 archivos
3 subsistema (Windows CUI)
Versión del sistema operativo 6.01
versión de imagen 6.01
Versión del subsistema 6.01
Tamaño de imagen D4000
800 tamaños de encabezados
Suma de comprobación D5597
00040000 tamaño de reserva de pila
00001000 tamaño de confirmación de pila
00100000 tamaño de reserva del montón
00001000 tamaño del compromiso del montón
140 características DLL
base dinámica
Compatible con NX
B4DA8 [A915] dirección del directorio de exportación
BF6C0 [1F4] dirección del directorio de importación
C7000 [520] dirección del directorio de recursos
0 [ 0] dirección del directorio de excepciones
0 [ 0] dirección del directorio de seguridad
C8000 [B098] dirección del directorio de reubicación de base
C5460 [38] dirección del directorio de depuración
0 [ 0] dirección del directorio de descripción
0 [ 0] dirección del directorio especial
0 [0] dirección del directorio de almacenamiento de subprocesos
816B8 [40] dirección del directorio de configuración de carga
278 [408] dirección del Directorio de importaciones vinculadas
1000 [DE8] dirección del directorio de la tabla de direcciones de importación
0 [ 0] dirección del directorio de importación retrasada
0 [ 0] dirección del directorio de encabezado COR20
0 [ 0] dirección del directorio reservado

ENCABEZADO DE SECCIÓN #1
.nombre del texto
Tamaño virtual C44C1
1000 direcciones virtuales
Tamaño C4600 de datos sin procesar
Puntero de archivo 800 a datos sin procesar

0 número de reubicaciones
0 número de números de línea
60000020 banderas
Código
(no se especifica ninguna alineación)
Ejecutar Leer

Directorios de depuración(2)
Tipo Tamaño Dirección Puntero
cv 25 c549c c4c9c Formato: RSDS, guid, 2, kernel32.pdb
(10) 4c5498c4c98

ENCABEZADO DE SECCIÓN #2
.nombre de datos
Tamaño virtual FEC
dirección virtual C6000
Tamaño E00 de datos sin procesar
Puntero de archivo C4E00 a datos sin procesar
0 puntero de archivo a la tabla de reubicación
0 puntero de archivo a números de línea
0 número de reubicaciones
0 número de números de línea
C0000040 banderas
Datos inicializados
(no se especifica ninguna alineación)
Leer escribir

ENCABEZADO DE SECCIÓN #3
.rsrc nombre
520 tamaño virtual
dirección virtual C7000
600 tamaños de datos sin procesar
Puntero de archivo C5C00 a datos sin procesar
0 puntero de archivo a la tabla de reubicación
0 puntero de archivo a números de línea
0 número de reubicaciones
0 número de números de línea
40000040 banderas
Datos inicializados
(no se especifica ninguna alineación)
Solo lectura

ENCABEZADO DE SECCIÓN #4
.reloc nombre
B098 tamaño virtual
Dirección virtual C8000
Tamaño B200 de datos sin procesar
Puntero de archivo C6200 a datos sin procesar
0 puntero de archivo a la tabla de reubicación
0 puntero de archivo a números de línea
0 número de reubicaciones
0 número de números de línea
42000040 banderas
Datos inicializados
descartable
(no se especifica ninguna alineación)
Solo lectura

Mensajes y excepciones

Después de conectarse a un proceso, primero se muestra una lista de módulos y luego pueden aparecer otros mensajes. Por ejemplo, cuando conectamos calc.exe, WinDBG establece automáticamente un punto de interrupción (que es simplemente un marcador utilizado para detener la aplicación). La información del punto de interrupción se muestra en la pantalla:

(da8.b44): Excepción de instrucción de interrupción: código 80000003 (primera oportunidad)

Este mensaje en particular es una excepción, es decir, una excepción de primera oportunidad. Básicamente, una excepción es una condición especial que ocurre durante la ejecución de un programa. Una excepción de primera oportunidad significa que el programa se detuvo inmediatamente después de que ocurrió la excepción. La excepción de segunda oportunidad significa que después de que ocurra la excepción, se realizarán algunas operaciones y luego el programa dejará de funcionar.

Registros

Después de mostrar mensajes y excepciones, el depurador muestra el estado de los registros del procesador. Los registros son variables especiales dentro del procesador que almacenan pequeños fragmentos de información o monitorean el estado de algo en la memoria. El procesador puede procesar la información de estos registros muy rápidamente. Esto es mucho más rápido que obtener información a través del bus desde la RAM cada vez.

Después de conectarse a calc.exe, WinDBG muestra automáticamente información sobre los siguientes registros:

eax=7ffd9000 ebx=00000000 ecx=00000000 edx=776cd23d esi=00000000 edi=00000000
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

Puedes duplicar esta información nuevamente más tarde usando el comando r:

0:005>r
eax=7ffd9000 ebx=00000000 ecx=00000000 edx=776cd23d esi=00000000 edi=00000000
eip=77663540 esp=02affd9c ebp=02affdc8 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
ntdll!DbgPunto de interrupción:
77663540 cc int 3

Si queremos obtener el valor de un registro específico, podemos ejecutar el siguiente comando:

0:005> r eax
eax=7ffd9000

La información se puede obtener simultáneamente de varios registros de la siguiente manera:

0:005> r eax,ebp
eax=7ffd9000 ebp=02affdc8

Puntero a la instrucción

El último comando trata sobre las instrucciones a ejecutar. Aquí también se muestra en pantalla la información, como en el caso del comando r, de lo que contiene el registro EIP. EIP es un registro que contiene la ubicación de la siguiente instrucción que ejecutará el procesador. Lo que muestra WinDBG es el equivalente al comando u eip L1, después del cual WinDBG va a la dirección especificada en el registro EIP, convierte esta sección en código ensamblador y lo muestra en la pantalla.

ntdll!DbgPunto de interrupción:
77663540 cc int 3

Mantente en contacto

En artículos futuros, veremos cómo usar WinDBG en el campo: puntos de interrupción, depuración paso a paso y exploración de memoria. ¡No cambies! J.

Herramientas de depuración para Windows- Herramientas de depuración de código operativo. sistemas windows. Son un conjunto de programas de distribución gratuita de Microsoft diseñados para depurar código en modo usuario y modo kernel: aplicaciones, controladores, servicios, módulos del kernel. El kit de herramientas incluye depuradores en modo consola y GUI, utilidades para trabajar con símbolos, archivos, procesos y utilidades para depuración remota. El kit de herramientas contiene utilidades que se pueden utilizar para encontrar las causas de fallas en varios componentes del sistema. Herramientas de depuración para Windows a partir de cierto momento no están disponibles para su descarga como distribución independiente y forman parte del SDK de Windows (Windows Software Development Kit). Conjunto de instrumentos herramientas de windows El SDK, a su vez, está disponible como parte del programa de suscripción de MSDN o se puede descargar gratuitamente como una distribución independiente desde msdn.microsoft.com. Según los desarrolladores, lo último y más versión actual Las herramientas de depuración para Windows están contenidas específicamente en el SDK de Windows.

Las herramientas de depuración para Windows se actualizan y se ponen a disposición del público con bastante frecuencia y este proceso no depende de ninguna manera del lanzamiento de los sistemas operativos. Por lo tanto, verifique periódicamente si hay nuevas versiones.

Veamos ahora para qué sirven, en particular, las herramientas de depuración. Microsoft Windows:

  • Depurar aplicaciones, servicios, controladores y kernel locales;
  • Depurar aplicaciones, servicios, controladores y kernel remotos a través de la red;
  • Depurar aplicaciones en ejecución en tiempo real;
  • Analizar archivos de volcado de memoria de las aplicaciones, el kernel y el sistema en su conjunto;
  • Trabajar con sistemas basados ​​en arquitecturas x86/x64/Itanium;
  • Depurar programas en modo usuario y modo kernel;

Están disponibles las siguientes versiones de herramientas de depuración para Windows: x86 de 32 bits, Intel Itanium, x64 de 64 bits. Necesitaremos dos de ellos: x86 o x64.

Hay varias formas de instalar herramientas de depuración para Windows; en este artículo consideraremos solo las principales:

  • Instalación mediante instalador web.
  • Instalación de herramientas de depuración para Windows desde ISO imagen de Windows SDK.
  • Instalación de herramientas de depuración para Windows directamente desde los paquetes dbg_amd64.msi/dbg_x86.msi.

Aún no está claro en qué momento, ¿por qué debería instalar herramientas de depuración en mi computadora? ¡A menudo nos enfrentamos a una situación en la que la interferencia en el entorno laboral es extremadamente indeseable! Y más aún, instalar un nuevo producto, es decir, realizar cambios en los archivos de registro/sistema, puede ser completamente inaceptable. Los ejemplos incluyen servidores de misión crítica. ¿Por qué los desarrolladores no consideran la opción de versiones portátiles de aplicaciones que no requieren instalación?
De versión en versión, el proceso de instalación del paquete Herramientas de depuración para Windows sufre algunos cambios. Pasemos ahora directamente al proceso de instalación y veamos las formas en que puede instalar el kit de herramientas.

Instalación de herramientas de depuración para Windows mediante el instalador web

Vaya a la página Archivo SDK de Windows y busque una sección llamada Windows 10 y debajo el elemento "SDK de Windows 10 (10586) y emulador de dispositivo con Windows 10 Mobile (Microsoft) (versión 10586.11)".

Haga clic en el artículo INSTALAR SDK. Después de hacer clic, descargue y ejecute el archivo sdksetup.exe, que inicia el proceso de instalación en línea del SDK de Windows. En la etapa inicial, el instalador verificará si el paquete .NET Framework está instalado en el sistema. ultima versión(V este momento esto es 4.5). Si falta el paquete, se ofrecerá la instalación y la estación se reiniciará al finalizar. Inmediatamente después del reinicio, en la etapa de autorización del usuario, comienza el proceso de instalación del SDK de Windows.

A menudo, al seleccionar todos los componentes de un paquete sin excepción, pueden ocurrir errores durante el proceso de instalación. En este caso, se recomienda instalar los componentes de forma selectiva, el conjunto mínimo requerido.

Una vez completada la instalación de las herramientas de depuración para Windows, la ubicación de los archivos de depuración cuando este método Nuestra instalación será la siguiente:

  • Versiones de 64 bits: C:\Archivos de programa (x86)\Windows Kits\x.x\Debuggers\x64
  • Versiones de 32 bits: C:\Archivos de programa (x86)\Windows Kits\x.x\Debuggers\x86

* donde x.x es una versión específica del kit de desarrollo;
Notamos que a partir de las versiones 8 y superiores, las rutas de instalación son notablemente diferentes a las clásicas para todos. Versión anterior¿Herramientas de depuración?

Una gran ventaja este método La instalación de herramientas de depuración para Windows implica instalar versiones de herramientas de depuración para todas las arquitecturas a la vez.

Instalación de herramientas de depuración para Windows desde la ISO del SDK de Windows

Este método implica instalar herramientas de depuración para Windows utilizando la imagen de instalación completa del SDK (Software Developers Kit) de Windows. Hasta cierta hora descargar Imagen ISO para el sistema correspondiente era posible en la página Archivo del SDK de Windows. Sin embargo, por el momento, puede obtener una imagen ISO del SDK ejecutando el instalador web sdksetup.exe y seleccionando Descargue el kit de desarrollo de software de Windows en la ventana de inicio del instalador:

Como descubrimos, el método de instalación anterior mediante un instalador web es bastante caprichoso y, a menudo, termina en error. En sistemas limpios se instala sin problemas, pero en sistemas suficientemente cargados surgen numerosos problemas. Si este es tu caso, entonces utiliza este método.

En consecuencia, en la página debe seleccionar la distribución requerida, para mí (y creo que para muchos) en este momento es "Windows SDK para Windows 7 y .NET Framework 4" y justo debajo haga clic en el enlace "Obtener una ISO". imagen de un DVD”.

Cuando trabaje con el sitio msdn.microsoft.com, recomiendo usar un navegador explorador de Internet, ya que ha habido casos en los que productos de la competencia no funcionan.

En consecuencia, es necesario elegir únicamente según la necesidad. Normalmente, el bitness de las herramientas de depuración para Windows coincide con el bitness del sistema. Mis sistemas son en su mayoría de 64 bits, por lo que en la mayoría de los casos descargo la imagen para un sistema de 64 bits GRMSDKX_EN_DVD.iso.
Luego, después de descargar la imagen, necesitamos trabajar de alguna manera con la imagen ISO existente. El método tradicional es, por supuesto, grabar un CD, pero es un método bastante largo y, a veces, caro. Sugiero utilizar utilidades gratuitas para crear dispositivos de disco virtuales en el sistema. Personalmente, prefiero utilizar DEAMON Tools Lite para este propósito. Alguien puede tener otras preferencias, utilidades más directas o ligeras, según gustos y colores, como dicen. Después de instalar DAEMON Tools Lite, simplemente hago doble clic en el archivo de imagen GRMSDKX_EN_DVD.iso y aparece uno nuevo virtual en el sistema. CD:

Luego, al hacer doble clic, activo la carga automática e inicio la instalación del SDK de Windows:

Cuando llega el momento de seleccionar componentes a instalar de la lista, desactivamos absolutamente todas las opciones excepto las marcadas en la captura de pantalla. Esto nos ayudará a evitar errores innecesarios ahora.


Todo es exactamente así, en la captura de pantalla hay dos opciones marcadas: "Windows Performance Toolkit" y "Herramientas de depuración para Windows". Elija ambos, porque Windows Performance Toolkit sin duda le resultará útil en su trabajo. Luego, después de hacer clic en el botón "Siguiente", la instalación continúa como de costumbre. Y al final verá la inscripción "Instalación completa".
Al finalizar la instalación, los directorios de trabajo del paquete de herramientas de depuración para Windows serán los siguientes:

  • Para la versión x86:
  • Para la versión x64:

En este punto, la instalación de las herramientas de depuración para Windows puede considerarse completa.

Instalación de herramientas de depuración para Windows mediante un archivo .msi

Si surgen problemas al instalar Herramientas de depuración para Windows utilizando los dos métodos anteriores, todavía tenemos uno más en stock, el más confiable y probado en el tiempo, que ha venido al rescate, por así decirlo, más de una vez. Érase una vez, antes de la integración en el SDK de Windows, las herramientas de depuración para Windows estaban disponibles como un installer.msi separado, que todavía se puede encontrar, pero ya en las entrañas de la distribución del SDK de Windows. Como ya tenemos una imagen ISO del SDK de Windows en nuestras manos, no podemos montarla en el sistema, simplemente abrirla usando el ya conocido archivador WinRAR o cualquier otro producto que funcione con el contenido de los discos ISO.

Luego de abrir la imagen, debemos ir al directorio “Setup” ubicado en la raíz y luego seleccionar uno de los directorios:

  • Para instalar la versión de 64 bits: \Configuración\WinSDKDebuggingTools_amd64 y descomprima el archivo dbg_amd64.msi de este directorio.
  • Para instalar la versión de 32 bits: \Setup\WinSDKDebuggingTools y descomprima el archivo dbg_x86.msi de este directorio.

Al finalizar la instalación, los directorios de trabajo del paquete de herramientas de depuración para Windows serán los siguientes:

  • Para la versión x86: C:\Archivos de programa (x86)\Herramientas de depuración para Windows (x86)
  • Para la versión x64: C:\Archivos de programa\Herramientas de depuración para Windows (x64)

En este punto, la instalación de las herramientas de depuración para Windows puede considerarse completa.

información adicional

No sé con qué está relacionado esto, tal vez debido a mi descuido, pero después de instalar las herramientas de depuración para Windows, el instalador no establece la ruta al directorio con el depurador en la variable de ruta del sistema Path. Esto impone ciertas restricciones al iniciar varias tareas de depuración directamente desde la consola. Por lo tanto, si no hay una ruta, escribo yo mismo en la ventana. Variables de entorno ruta a las herramientas de depuración:

  • C:\Archivos de programa (x86)\Windows Kits\10\Debuggers\x86
  • C:\Archivos de programa (x86)\Windows Kits\10\Debuggers\x64

* En su caso, las rutas pueden diferir debido al uso de un sistema operativo de diferente tamaño de bits y al uso de una versión diferente del SDK.

Las utilidades del paquete Debugging Tools para Windows pueden funcionar como aplicaciones portátiles; solo necesita copiar el directorio del sistema en funcionamiento. Kit de herramientas de rendimiento de Microsoft Windows y utilizarlo como una versión portátil en un servidor de producción. ¡¡Pero no olvides tener en cuenta la capacidad del sistema!! Incluso si ha completado una instalación completa del paquete en un sistema crítico, puede comenzar a trabajar inmediatamente después de la instalación, no es necesario reiniciar.

Composición de herramientas de depuración para Windows

Y ahora, finalmente, aquí está la composición de las herramientas de depuración para Windows:

Archivo Objetivo
adplus.doc Documentación para la utilidad ADPlus.
adplus.exe Una aplicación de consola que automatiza el trabajo del depurador CDB para crear volcados y archivos de registro para uno o más procesos.
agestore.exe Una utilidad para eliminar archivos obsoletos del almacenamiento utilizado por un servidor de símbolos o un servidor de origen.
breakin.exe Una utilidad que le permite enviar una combinación de pausa personalizada a los procesos, similar a presionar CTRL+C.
cdb.exe Depurador de consola en modo usuario.
convertstore.exe Una utilidad para convertir símbolos de 2 niveles a 3 niveles.
dbengprx.exe Repetidor (servidor proxy) para depuración remota.
dbgrpc.exe Una utilidad para mostrar información de estado de llamadas RPC.
dbgsrv.exe Proceso de servidor utilizado para la depuración remota.
dbh.exe Una utilidad para mostrar información sobre el contenido de un archivo de símbolos.
dumpchk.exe Utilidad de verificación de volcados. Una utilidad para comprobar rápidamente un archivo de volcado.
dumpexam.exe Una utilidad para analizar un volcado de memoria. El resultado se envía a %SystemRoot%\MEMORY.TXT .
gflags.exe Editor de banderas del sistema global. La utilidad administra las claves de registro y otras configuraciones.
i386kd.exe Envoltorio para kd. ¿Era así como alguna vez se llamó kd para los sistemas basados ​​en Windows NT/2000 para máquinas x86? Probablemente lo dejó por razones de compatibilidad.
ia64kd.exe Envoltorio para kd. ¿Alguna vez se llamó kd para sistemas basados ​​en Windows NT/2000 para máquinas ia64? Probablemente lo dejó por razones de compatibilidad.
kd.exe Depurador de consola en modo kernel.
kdbgctrl.exe Herramienta de gestión de depuración del kernel. Una utilidad para administrar y configurar la conexión de depuración del kernel.
kdsrv.exe Servidor de conexión para KD. La utilidad es una pequeña aplicación que se ejecuta y espera conexiones remotas. kd se ejecuta en el cliente y se conecta a este servidor para la depuración remota. Tanto el servidor como el cliente deben pertenecer al mismo conjunto de herramientas de depuración.
matar.exe Una utilidad para finalizar procesos.
lista.exe Una utilidad para mostrar el contenido de un archivo en la pantalla. Esta utilidad en miniatura se incluyó con un propósito: ver archivos de registro o texto de gran tamaño. Ocupa poco espacio en la memoria porque carga el texto por partes.
registrador.exe Un depurador en miniatura que sólo puede funcionar con un proceso. La utilidad inyecta logexts.dll en el espacio de proceso, que registra todas las llamadas a funciones y otras acciones del programa en estudio.
logviewer.exe Una utilidad para ver los registros registrados por el depurador logger.exe.
ntsd.exe Depurador simbólico de Microsoft NT (NTSD). Un depurador idéntico a cdb excepto que crea una ventana de texto cuando se inicia. Al igual que cdb, ntsd es capaz de depurar tanto aplicaciones de consola como aplicaciones gráficas.
pdbcopy.exe Una utilidad para eliminar símbolos privados de un archivo de símbolos y controlar los símbolos públicos incluidos en el archivo de símbolos.
remoto.exe Una utilidad para la depuración remota y el control remoto de cualquier depurador de consola KD, CDB y NTSD. Le permite ejecutar todos estos depuradores de consola de forma remota.
rtlist.exe Visor de tareas remotas. La utilidad se utiliza para mostrar una lista de procesos en ejecución a través del proceso del servidor DbgSrv.
symchk.exe Una utilidad para descargar símbolos del servidor de símbolos de Microsoft y crear una caché de símbolos local.
symstore.exe Una utilidad para crear una red o un almacenamiento de símbolos local (2 niveles/3 niveles). El almacenamiento de símbolos es un directorio especializado en disco, que está construido de acuerdo con una estructura específica y contiene símbolos. En el directorio raíz de símbolos se crea una estructura de subcarpetas con nombres idénticos a los nombres de los componentes. A su vez, cada una de estas subcarpetas contiene subcarpetas anidadas que tienen nombres especiales obtenidos mediante hash de archivos binarios. La utilidad symstore escanea las carpetas de componentes y agrega nuevos componentes al almacén de símbolos, donde cualquier cliente puede recuperarlos. Se dice que symstore se utiliza para recibir símbolos del almacenamiento de nivel 0 y colocarlos en un almacenamiento de 2 o 3 niveles.
tlist.exe Visor de tareas. Una utilidad para mostrar una lista de todos los procesos en ejecución.
umdh.exe Utilidad de montón de volcado en modo de usuario. Una utilidad para analizar montones del proceso seleccionado. Le permite mostrar varios parámetros para el montón.
usbview.exe Visor USB. Una utilidad para ver dispositivos USB conectados a una computadora.
vmdemux.exe Demultiplexor de máquina virtual. Crea varias canalizaciones con nombre para una conexión COM. Los canales se utilizan para depurar varios componentes de la máquina virtual.
windbg.exe Depurador en modo usuario y modo kernel con GUI.

Para identificar las causas pantallas azules(BSOD) se requiere un análisis de volcado de memoria. En la gran mayoría de los casos, es suficiente un minivolcado, que el sistema crea en caso de errores críticos.
Este artículo contiene instrucción paso a paso sobre la instalación y configuración de WinDBG, una poderosa herramienta de depuración que le permite identificar la verdadera causa de BSOD.

Paso 1: configurar volcados de memoria pequeños

Paso 2: instalar WinDBG

Para analizar volcados de memoria, deberá instalar el depurador WinDBG, que se incluye en el SDK de Windows. Al momento de escribir este artículo, el último disponible Versiones de Windows SDK:

  • SDK de Windows 10 (descarga del instalador de red)
  • SDK de Windows 8.1 (descarga del instalador de red)

Paso 3: asignación de archivos .dmp a WinDBG

Para facilitar la lectura y el análisis de volcados de memoria, asigne archivos .dmp a WinDBG. Esto le permitirá abrir archivos de volcado desde Explorer directamente en WinDBG sin iniciarlo primero.


Paso 4: Configurar un servidor de símbolos para recibir archivos de símbolos de depuración


La instalación y configuración inicial de WinDBG está completa. Para cambiar su apariencia, puedes ir al menú. Vista- encontrará la configuración de fuente seleccionando Fuente y la configuración de la ventana de la consola en Opciones.




Arriba