WinDbg es un depurador multipropósito para el sistema operativo de computadora Microsoft Windows , distribuido por Microsoft. [1] La depuración es el proceso de encontrar y resolver errores en un sistema ; en informática también incluye explorar el funcionamiento interno del software como ayuda para el desarrollo. Se puede utilizar para depurar aplicaciones en modo de usuario , controladores de dispositivos y el propio sistema operativo en modo kernel . Al igual que el depurador de Visual Studio más conocido , tiene una interfaz gráfica de usuario (GUI), pero es más potente y tiene poco más en común.
Desarrollador (es) | Microsoft |
---|---|
Lanzamiento estable | 10.0.20153.1000 / 29 de abril de 2020 |
Sistema operativo | Microsoft Windows |
Tipo | Depurador |
Licencia | Comercial |
Sitio web | Herramientas de depuración en docs.microsoft.com |
WinDbg se puede usar para depurar volcados de memoria en modo kernel , creados después de lo que comúnmente se llama la pantalla azul de la muerte, que ocurre cuando se emite una verificación de errores . [2] También se puede utilizar para depurar volcados por caída en modo usuario. Esto se conoce como depuración post-mortem . [3]
WinDbg puede cargar automáticamente archivos de símbolos de depuración (p. Ej., Archivos PDB ) desde un servidor al hacer coincidir varios criterios (p. Ej., Marca de tiempo, CRC, versión de un solo procesador o multiprocesador) a través de SymSrv (SymSrv.dll), [4] en lugar de los que requieren más tiempo. tarea de crear un árbol de símbolos para un entorno de destino de depuración. Si se configura un servidor de símbolos privado, los símbolos pueden correlacionarse con el código fuente del binario. Esto alivia la carga de problemas de depuración que tienen varias versiones de binarios instalados en el destino de depuración al eliminar la necesidad de buscar e instalar una versión de símbolos específicos en el host de depuración. Microsoft tiene un servidor de símbolos públicos que tiene la mayoría de los símbolos públicos para Windows 2000 y versiones posteriores de Windows (incluidos los paquetes de servicios ). [5]
Las versiones recientes de WinDBG han sido y están siendo distribuido como parte de los libres herramientas de depuración para Windows suite, la cual comparte un back-end depuración común entre WinDbg y la línea de comandos del depurador front-end como KD , CDB , y NTSD . La mayoría de los comandos se pueden usar tal cual con todas las interfaces de depuración incluidas.
Vale la pena señalar que en 2017 Microsoft anunció una nueva versión de WinDbg llamada WinDbg Preview (también conocida como WinDbgX). [6] Una de las características más notables de WinDbg Preview es la llamada depuración de viajes en el tiempo (TTD). [7] La idea principal aquí es que puede grabar un proceso en vivo real (con una penalización de rendimiento) para luego depurarlo yendo y viniendo en el tiempo. Esta característica es especialmente útil durante el proceso de ingeniería inversa. También permite escribir scripts en lenguaje JavaScript. [8]
Extensiones
WinDbg permite cargar archivos DLL de extensión [9] que pueden aumentar los comandos admitidos por el depurador y ayudar a depurar escenarios específicos: por ejemplo, mostrar un documento MSXML dado un IXMLDOMDocument o depurar Common Language Runtime (CLR) . [10] Estas extensiones son una gran parte de lo que hace que WinDbg sea un depurador tan poderoso. WinDbg es utilizado por el equipo de productos de Microsoft Windows para construir Windows, y todo lo necesario para depurar Windows está incluido en estas DLL de extensión.
Los comandos de extensión siempre tienen el prefijo ! .
Si bien algunas extensiones se usan solo dentro de Microsoft, la mayoría de ellas forman parte del paquete público de herramientas de depuración para Windows.
El modelo de extensión está documentado en el archivo de ayuda incluido con las herramientas de depuración para Windows.
Ext.dll
Ext es una extensión estándar del depurador de Windows que se incluye con WinDBG y se carga de forma predeterminada.
! analizar comando
El comando más comúnmente utilizado es ! Analizar -v , [11] que analiza el estado actual del programa que se está depurando y el estado de la máquina / proceso en el momento del bloqueo o bloqueo. Este comando a menudo puede depurar el problema actual de una manera completamente automatizada.
Cuando se utiliza sin interruptores ,! Analyse simplemente devuelve los resultados de su análisis. Los -v y -vv dar más detalles acerca de ese análisis.
Wow6432exts.dll
Wow6432exts es una extensión estándar del depurador de Windows que se envía con WinDBG. Se utiliza para depurar procesos que se ejecutan dentro de WoW64 (procesos de 32 bits que se ejecutan en Windows de 64 bits). [12]
SOS.dll
La extensión de depuración SOS (Son of Strike) [13] (SOS.dll) ayuda a depurar programas administrados en Visual Studio y WinDbg proporcionando información sobre el entorno interno de Common Language Runtime (CLR). Esta herramienta requiere que un proyecto tenga habilitada la depuración no administrada. SOS.dll se instala automáticamente con .NET Framework. Para utilizar SOS.dll en Visual Studio, instale el Kit de controladores de Windows (WDK). [14] Para depurar un proceso o un volcado de memoria, la versión sos.dll debe coincidir con la versión de .NET Framework. Psscor2 y Psscor4 son un superconjunto de SOS.
Psscor2.dll
Psscor2 es la extensión del depurador de Windows que se utiliza para depurar aplicaciones de .NET Framework que utilizan .NET CLR versión 2.0 (.NET Framework versiones 2 a 3.5). Psscor2 fue desarrollado para uso interno en Microsoft como parte de sus herramientas de Servicios de soporte técnico. [15] Si bien Microsoft solo lanzó Psscor2 en 2010 [16] Microsoft había estado publicando comandos de la extensión varios años antes, [17] causando dificultades a quienes intentaban seguir sus procesos.
Psscor4.dll
Psscor4 es una extensión del depurador de Windows que se utiliza para depurar aplicaciones de .NET Framework 4.
Acoplamiento con máquinas virtuales
WinDbg permite depurar un kernel de Microsoft Windows que se ejecuta en una máquina virtual mediante VMware , VPC o Parallels utilizando una tubería con nombre . Esto se puede lograr utilizando un puerto COM virtual . En el caso de VMware y VirtualBox , la extensión VirtualKD agrega soporte nativo para la depuración de VM al kernel de Windows, afirmando que acelera la depuración en un factor de hasta 45. [18] Para Windows 8 y versiones posteriores, se permite la depuración del kernel a través de la red, [19] que permite una depuración rápida del kernel sin una configuración especial.
Protocolo
El protocolo WinDbg no está documentado, pero es compatible con los desensambladores IDA Pro y radare2 .
Ver también
- ProcDump
- Desvíos de Microsoft
Referencias
- ^ EliotSeattle. "Descargue el kit de controladores de Windows (WDK)" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "¿Cómo utilizo el depurador WinDBG para solucionar problemas de una pantalla azul de la muerte?" . TechRepublic . Consultado el 23 de abril de 2018 .
- ^ "Depuración post-mortem de aplicaciones .NET usando WinDbg" . Tewarid.github.io . 10 de septiembre de 2010 . Consultado el 23 de abril de 2018 .
- ^ "Depuración con símbolos (Windows)" . Support.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ DOMARES. "Servidor de símbolos públicos de Microsoft" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "¡Nuevo WinDbg disponible en vista previa! - Herramientas de depuración para Windows" . blogs.msdn.microsoft.com . Consultado el 13 de agosto de 2019 .
- ^ "Aprovechando el nuevo WinDbgX y Time-Travel-Trace –Script para enumerar todos los accesos a archivos - Blog de Rodney Viana (MSFT)" . blogs.msdn.microsoft.com . Consultado el 13 de agosto de 2019 .
- ^ "Scripting WinDbg más fácil con Javascript para la investigación de malware - Avar 2018" . Consultado el 13 de agosto de 2019 .
- ^ DOMARES. ".load, .loadby (DLL de extensión de carga)" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "Problemas de la revista MSDN" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ DOMARES. "analizar" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "Depurando WOW64 (Windows)" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "Depuración SOS del CLR, parte 1" . Blogs.msdn.com . Archivado desde el original el 28 de julio de 2010 . Consultado el 23 de abril de 2018 .
- ^ mairaw. "SOS.dll (extensión de depuración SOS)" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "Nueva extensión del depurador para .NET (PSSCOR2)" . Blogs.msdn.com . Consultado el 23 de abril de 2018 .
- ^ "Lanzamiento de la nueva extensión del depurador para .NET, Psscor2" . Blogs.msdn.com . Consultado el 23 de abril de 2018 .
- ^ "Problemas de la revista MSDN" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
- ^ "VirtualKD - Potenciador del depurador del kernel de Windows para máquinas virtuales" . Virtualkd.sysprogs.org . Consultado el 23 de abril de 2018 .
- ^ DOMARES. "Configuración manual de la depuración en modo kernel a través de un cable de red" . Msdn.microsoft.com . Consultado el 23 de abril de 2018 .
enlaces externos
- Para comenzar: Instrucciones de instalación , Parte 1 , Parte 2
- Herramientas de depuración para Windows : información y descargas gratuitas
- WinDbg. ¡De la A a la Z! - Teoría y ejemplos, 111 diapositivas
- Comandos comunes de WinDbg (agrupados temáticamente)
- Tutorial sobre cómo resolver fallas del sistema usando WinDbg
- Carga de símbolos en WinDbg
- Depuradores de Windows: Parte 1: Tutorial de WinDbg
- Extensión KD para depuración rápida de VMware y VirtualBox
- Extensión de depuración SOS (SOS.dll)
- psscor4 (.NET 4.0) o psscor2 (.NET 2.0-3.5) Reemplazo de SOS con un superconjunto de comandos
- [1] WinDBG v6.12.2.633 disponible a través del kit de controladores de Windows versión 7.1.0
- Extensión para scripting de Python (pykd)
- DbgKit: la primera extensión GUI para herramientas de depuración para Windows