Compartir a través de


Notas de la versión

Logotipo de WinDbg con una lupa inspeccionando bits.

En este tema se proporciona información sobre las novedades de WinDbg. Las versiones anteriores se publicaron como Versión preliminar de WinDbg.

1.2409.17001.0

Correcciones de accesibilidad

Hemos corregido varios problemas al interactuar con WinDbg mediante un lector de pantalla.

Corrección de errores

  • Se ha corregido un problema por el que la desinstalación de WinDbgX impedía el inicio de WinDbg clásico.
  • Se ha corregido un problema por el que WinDbgX cambiaba el tamaño después de aparecer durante el inicio.

Depuración de viaje en el tiempo (TTD)

1.2407.24003.0

Nuevas características

Nuevo proveedor de scripting de JavaScript

Ahora se envía un nuevo proveedor de JavaScript compatible con versiones anteriores basado en V8. Por lo tanto, los hosts arm64 ahora pueden usar extensiones de JavaScript. La interfaz de usuario de arm64 ahora tiene también como valor predeterminado el motor arm64.

El nuevo proveedor está habilitado de forma predeterminada en todas las arquitecturas. En x86 y x64, puede activarse o desactivarse a través de los comandos .veighton y .veightoff. En algún momento próximamente, estos comandos y el proveedor de JavaScript heredado se quitarán.

Las extensiones del depurador con manifiestos de la galería de extensiones ahora pueden agregar iconos a la nueva pestaña Extensiones de la cinta de opciones de WinDbg. Al hacer clic en estos iconos, se desencadenará una visualización de una consulta de modelo de datos determinada. Este medio de extensibilidad se logra mediante la adición de vistas al manifiesto de la galería de extensiones. Una vista enlaza un acoplamiento de un nombre y un icono a una consulta de modelo de datos y un tipo de vista. La documentación se puede encontrar en la Documentación del manifiesto de la galería de extensiones.

Una extensión de la galería ahora se puede cargar condicionalmente en función de valores de parámetros de excepción específicos. Consulte la Documentación del manifiesto de la Galería de extensiones para obtener más información.

Opción de configuración para no descargar nunca símbolos específicos

Ahora puede omitir la descarga de símbolos para las imágenes especificadas.

En la sección Symbols del archivo de configuración DbgX.xml, puede agregar una lista de símbolos:

<Namespace Name="DisabledSymbolsDownload">
  <Setting Name="MSEdge.dll" Type="VT_BSTR" Value=""></Setting>
</Namespace>

En el depurador, puede ejecutar dx Debugger.Settings.Symbols.DisabledSymbolsDownload para ver la lista actual de símbolos que no se están descargando.

También puede cambiar la lista directamente desde el depurador de la siguiente manera:

dx @$curprocess.Modules[1].DisableSymbolDownload()
dx @$curprocess.Modules[1].EnableSymbolDownload()

Para ayudar a depurar problemas con la descarga de orígenes basados en SourceLink incrustado, ahora puede usar el comando !lmsourcesinfo module para mostrar el contenido de SourceLink que usará el depurador.

Mejoras generales de la interfaz de usuario

Hemos realizado algunas pequeñas mejoras en ventanas como la de módulos o de pila:

  • Ahora puede ordenar las vistas en cuadrícula haciendo clic en la columna de encabezado.
  • Hay más acciones disponibles con el botón derecho del ratón.
  • La ventana de pila muestra los marcos como alineados cuando es apropiado.

Corrección de errores

  • Se ha corregido un problema por el que los archivos PDB de más de 4 GB no se descargaban a través de HTTP.
    • Edge es un ejemplo de este PDB.
  • Se ha corregido el problema de almacenamiento en caché en el proveedor de credenciales del depurador (ahora almacenará en caché las credenciales por sitio).
  • Se han corregido errores durante la evaluación de los desencadenadores de carga de la Galería de extensiones.
  • Se ha corregido un error con !address que podía provocar un bloqueo.
  • !heap -a -a ahora debería funcionar.

TTD

Consulte las notas de la versión de TTD para la versión 1.11.410.

1.2402.24001.0

Nuevas características

Depuración en vivo de Linux

Ahora puede depurar un proceso de Linux. Para obtener más información, consulte estos temas:

Depuración de procesos remotos en vivo de Linux

Símbolos y orígenes de Linux

En un futuro próximo, el cliente WinDbg seguirá necesitando Windows, ya que WinDbg no funciona en Linux.

Registro de un subconjunto de ejecución con depuración de viaje de tiempo

Ahora puede especificar una lista de módulos que se van a registrar para centrar el TTD en los módulos que le interesan. Esto puede reducir considerablemente la sobrecarga de registro. Para usarlo, simplemente active "Registrar subconjunto de ejecución" en el cuadro de diálogo "Configurar y registrar" y, a continuación, especifique los módulos que desea registrar. (consulte los problemas conocidos a continuación).

Para un control más preciso, puede registrar con precisión el programa mediante una nueva API de registro en proceso. Consulte el proceso con nuestro código de ejemplo y la documentación.

Ventana de registro compacta

La nueva ventana de registro es similar a la salida del comando r. Tenga en cuenta que aún no se admite la edición desde la nueva ventana de registro.

Nuevos parámetros para e (Escribir valores) en comandos de memoria

Los comandos e (Escribir valores) en memoria ahora admiten direcciones físicas como los comandos d (Memoria de visualización). Tenga en cuenta que estas opciones solo se admiten en modo kernel:

Opción Descripción
/p Utiliza direcciones de memoria físicas para la visualización. El intervalo especificado por Intervalo se tomará de la memoria física en lugar de la memoria virtual.
/p[c] Igual que /p, excepto que se leerá la memoria en caché. Se deben incluir los corchetes alrededor de c .
/p[uc] Igual que /p, excepto que se leerá la memoria no en caché. Se deben incluir los corchetes alrededor de uc .
/p[wc] Igual que /p, excepto que se leerá la memoria combinada de escritura. Se deben incluir los corchetes alrededor de wc .

Para obtener más información, consulte e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Escribir valores).

Correcciones de errores

  • Compatibilidad con la separación de nombres de Rust en la depuración de Linux
  • Mejoras en la depuración de CLR
    • Adición de la capacidad de forzar marcos de CLR de la pila en modo mixto
      • Se ha agregado el ajuste ForceMixedModeStackWalker a config.xml o DbgX.xml.
      • Se ha agregado el comando !forceclrmixedmodeunwind para investigaciones puntuales o si no se puede cambiar la configuración.
  • Mejoras generales de la depuración de CLR en Linux
  • Se ha corregido una serie de problemas con respecto a LinuxKernel.js y variables por cpu
    • Se ha agregado el comando !runq a LinuxKernel.js para poder volcar las colas de ejecución del programador del kernel por cpu (de forma similar al comando runq de la utilidad de bloqueo de Linux).
    • Se han corregido varios comandos en LinuxKernel.js para corresponderse con los cambios del kernel: en kernels más recientes, el árbol de temporizador usa nodos RB almacenados en caché en lugar de nodos RB sin procesar; en kernels más recientes, la lista de all_bdevs ha desaparecido, por lo que los dispositivos bloqueados ahora se guían por el superbloqueo (blockdev_superblock)
  • Varias correcciones natvis para funcionar más como las versiones recientes de Visual Studio
  • Preferencia de sourcelink frente a sourceinfo heredado
    • Se ha agregado el comando !lmsourcesinfo <module> para mostrar flujos de sourcelink desde pdb (para ayudar a depurar problemas con sourcelink).

Problemas conocidos

Al especificar una lista de módulos que se van a registrar con TTD, especificar más de un módulo no funciona en esta versión.

1.2308.2002.0

Muchas correcciones de errores y pequeñas mejoras.

1.2306.12001.0

Muchas correcciones de errores y pequeñas mejoras.

1.2303.30001.0

Nota:

Se ha cambiado el nombre del depurador de WinDbg Preview a WinDbg.

Se hará referencia al depurador heredado con herramientas de depuración para Windows como WinDbg (clásico).

Depuración de viaje en el tiempo en ARM64

No solo winDbg se ejecuta de forma nativa en ARM64, también se ha habilitado la depuración de viaje en el tiempo (TTD) de procesos ARM64 nativos. Ahora puede registrar procesos nativos de ARM64 (y procesos x86 y ARM32) y depurarlos fácilmente, incluso en la máquina x64. La compatibilidad con procesos habilitados para x64 o x64 (ARM64EC) en dispositivos ARM64 aún no está disponible.

El rendimiento general de TTD también se ha mejorado, con una sobrecarga de registro considerablemente reducida para los procesos que usan instrucciones SIMD comunes. En total, se han optimizado 65 instrucciones nuevas, desde MMX hasta SSE 4.2, AVX y AVX2.

Resolución de puntos de interrupción ambiguos

Los puntos de interrupción ambiguos permiten al depurador establecer puntos de interrupción en determinados escenarios en los que una expresión de punto de interrupción se resuelve en varias ubicaciones. Para obtener más información, consulte Resolución de puntos de interrupción ambiguos.

1.2107.13001.0

La búsqueda en versión preliminar de WinDbg ahora incluye la opción de buscar mediante expresiones regulares: Regex. Habilite Regex en la ventana en la que desea buscar mediante Ctrl+F y, a continuación, cambie el botón etiquetado como .* situado junto al cuadro de búsqueda.

Modo restringido

El modo restringido es una configuración opcional que puede limitar el tipo de sesiones de depuración que WinDbg Preview puede iniciar solo en sesiones de depuración remotas y archivos de volcado. Para obtener más información, consulte WinDbg - Modo restringido.

Compatibilidad con variables sombreadas

En versiones anteriores, WinDbg producía errores de "Símbolo ambiguo" al intentar evaluar (??) o mostrar (dx) una variable que comparte su nombre con otra variable en el ámbito. Ahora, Windbg desambiguará las variables que comparten el mismo nombre anexando @n al nombre de la variable. Por ejemplo: foo@0, foo@1

Este cambio también se reflejará en la ventana Variables locales. Anteriormente, solo se mostraría la variable más cercana en el ámbito.

1.2104.13002.0

Una característica de productividad cómoda de WinDbg Preview es la capacidad de detectar patrones en la ventana de comandos. Para ello, seleccione cualquier texto y todas las demás instancias de ese texto resaltado. Dado que este resaltado es útil al examinar los patrones de memoria, ahora también resaltará números equivalentes en otras bases, independientemente de cómo se dé formato al número en notación hexadecimal, decimal o científica. Para obtener más información sobre los esquemas de numeración, consulte n (Establecer base de números).

Ejemplo:

Al seleccionar 0x000001e2fb3f6160, todas las demás instancias se resaltan independientemente del formato.

Captura de pantalla de la ventana de comandos de WinDbg con varios formatos de número resaltados.

Esta característica también funciona con resaltados semitemporales. Ctrl + doble clic en un número para resaltar todas sus instancias. Puede realizar un seguimiento de varios números importantes a lo largo del historial de comandos de esta manera (para borrar el resaltado, Ctrl + doble clic en el número de nuevo). Por último, esta característica también funciona al buscar números con Ctrl + F.

Acceso extendido de código fuente

El comando de ruta de acceso de origen .srcpath, .lsrcpath (Establecer ruta de acceso de origen) se ha actualizado para incluir una nueva etiqueta: DebugInfoD. Para obtener más información, consulte Acceso extendido de código fuente.

Estados de host e invitado de los procesos WOW en el modelo de datos

Al depurar un proceso WOW de 32 bits desde un contexto de 64 bits, los usuarios ahora pueden acceder tanto al estado de host como de invitado dentro del modelo de datos.

Ejemplos de estado de invitado de 32 bits:

dx @$curprocess.Environment

dx @$curthread.Environment

dx @$curthread.Stack

Ejemplos de estado de host de 64 bits:

dx @$curprocess.NativeEnvironment

dx @$curthread.NativeEnvironment

dx @$curthread.NativeStack

Mejoras en la depuración de Javascript

JavaScript cargado en la interfaz de usuario ahora se puede depurar directamente dentro de la consola mediante el comando .scriptdebug. Para obtener más información, consulte Scripting del depurador de JavaScript - Depuración de JavaScript.

Mejoras de accesibilidad

Con WinDbg Preview estamos comprometidos a crear un depurador que sea inclusivo para los ingenieros con discapacidades, estamos mejorando continuamente la accesibilidad. Se han realizado las siguientes mejoras.

  • Ahora se puede hacer clic en los vínculos de la ventana de comandos mediante el teclado (Mayús+Entrar)
  • Navegación mejorada con el teclado del menú principal
  • Navegación mejorada con el teclado de la cinta
  • Mayor contraste en los elementos de la interfaz de usuario

Nuevo tipo de acceso a datos de "Sobrescritura" para el depurador de viaje en el tiempo

Depurador de viaje en el tiempo (TTD) ahora proporciona un tipo de acceso a datos de "Sobrescritura". Las consultas de memoria, como dx $@cursession.TTD.Memory() ahora tienen una columna adicional que muestra los valores antiguos de escrituras.

Otras correcciones, mejoras y actualizaciones

  • Se ha agregado una característica para detectar y aplicar automáticamente soluciones alternativas para el problema de hardware USB 3.1 cuando tanto el host de depuración de kernel como el destino son controladores USB 3.1.
  • Se ha agregado un nuevo acceso directo a la interfaz de usuario: Ctrl + Mayús + Clic sobre un vínculo DML para copiarlo en el Portapapeles

1.0.2007.01003

Marcadores de cronología

Marca las posiciones importantes del viaje en el tiempo en WinDbg en lugar de copiar y pegar manualmente la posición en el bloc de notas. Los marcadores facilitan la visualización de un vistazo de las distintas posiciones en el rastreo en relación con otros eventos, así como su anotación.

Puede dar un nombre descriptivo a los marcadores.

Captura de pantalla del cuadro de diálogo de nuevo marcador con un nombre de ejemplo para la primera llamada a la API en la aplicación Display Greeting.

Acceda a los marcadores a través de la ventana Cronología disponible en Ver > Cronología. Cuando pase el puntero sobre un marcador, mostrará el nombre del marcador.

Captura de pantalla de la escala de tiempo de WinDbg con tres marcadores y una información sobre herramientas que muestra el nombre del marcador.

Puede mantener seleccionado (o hacer clic con el botón derecho del ratón) el marcador para desplazarse a esa posición, cambiarle el nombre o eliminarlo.

Captura de pantalla del menú emergente de clic derecho en marcador con opciones para desplazarse a la posición, editar y eliminar.

Ventana Módulos

En una ventana nueva se muestran los módulos y su información relacionada, que está disponible a través de la cinta Ver. Muestra lo siguiente:

  • Nombre del módulo, incluida la ubicación de la ruta.
  • El tamaño en bytes del módulo cargado
  • La dirección base en la que se carga el módulo
  • Versión del archivo

Captura de pantalla de la ventana de vista Módulos de WinDbg con cinco módulos.

Nombres y descripciones de subprocesos disponibles en la depuración en vivo

Los nombres de subprocesos que se establecen desde SetThreadDescription ahora están disponibles al realizar la depuración en modo de usuario activa. Los nombres de subprocesos están disponibles mediante el comando "~" o el modelo de datos del depurador.

0:000> ~
   0  Id: 53a0.5ffc Suspend: 1 Teb: 000000b1`db1ed000 Unfrozen "Hello world!"
   7  Id: 53a0.9114 Suspend: 1 Teb: 000000b1`db1ef000 Unfrozen
   8  Id: 53a0.2cc4 Suspend: 1 Teb: 000000b1`db1f1000 Unfrozen
   9  Id: 53a0.5c40 Suspend: 1 Teb: 000000b1`db1f3000 Unfrozen

0:000> dx @$curthread
@$curthread                 : ConsoleTestApp!ILT+25(mainCRTStartup) (00007ff7`fac7101e)  [Switch To]
    Id               : 0x5ffc
    Name             : Hello world!
    Stack
    Registers
    Environment

Compatibilidad con PDB portátil

Se ha agregado compatibilidad con PDB portátil. El formato PDB portátil (base de datos de programa) describe una codificación de la información de depuración generada por compiladores de lenguajes de Common Language Infrastructure (CLI) que consumen los depuradores y otras herramientas. Para obtener más información, consulte Símbolos de PDB portátil.

Otros cambios y correcciones de errores

  • WinDbg ahora admite la depuración de volcado de kernel amd64 y Linux.
  • Mejoras en el registro de viaje en el tiempo y otras correcciones.

1.0.1912.11001

Escalas de tiempo de TTD - Se ha agregado una nueva ventana de escala de tiempo que muestra una representación visual de eventos importantes en el seguimiento: excepciones, puntos de interrupción, llamadas de función y accesos a memoria. Las escalas de tiempo se abrirán y mostrarán automáticamente excepciones (si las hay) y puntos de interrupción. Para obtener más información, consulte WinDbg Preview - Cronología.

Cambio al cromo de ventana predeterminado: el cromo de ventana personalizado que utilizábamos, aunque más bonito, estaba causando algunos problemas de escalado y redimensionado a un número notable de personas, por lo que hemos optado por eliminarlo de momento.

Navegación mejorada con el teclado del menú Archivo: ahora es mucho más fácil navegar por el menú Archivo con solo un teclado.

Otros cambios y correcciones de errores

  • La ventana de pila y variables locales ahora se deshabilitará cuando se ejecute el destino y no mostrará "Error no especificado" cuando no haya ningún destino.
  • Se ha agregado una columna de "Servicios" al cuadro de diálogo de adjuntar para encontrar fácilmente qué servicios se ejecutan.
  • Se ha corregido un error que provocaba que la detección de arquitectura no funcionara al iniciar aplicaciones con argumentos.
  • La ventana de desensamblado ha mejorado el desensamblado cuando se cargan símbolos privados.
  • jsprovider.dll ahora se carga automáticamente, por lo que hemos quitado el botón "Cargar JSProvider" de la cinta de scripting.

1.0.1908.30002

Mejoras en los objetos de llamadas a TTD - Las consultas de llamadas ahora incluyen nombres de parámetros, tipos y valores. Al consultar los seguimientos en busca de llamadas a funciones, puede obtener parámetros totalmente tipificados y sus valores, lo que facilita el filtrado de los resultados por parámetros.

Compatibilidad con Open Enclave: WinDbg Preview ahora puede depurar aplicaciones de Open Enclave (OE). Para obtener más información, consulte Depuración de Open Enclave.

Volcados de núcleo principales de ELF: como parte de la compatibilidad con Open Enclave, WinDbg puede abrir volcados de núcleo y archivos binarios ELF, así como símbolos DWARF (actualmente, no se admite DWARF 5) en aplicaciones de Enclave ni de Linux. Al abrir un volcado de núcleo desde una aplicación que no es de Windows, las ventanas básicas y los comandos deberían funcionar correctamente, pero la mayoría de las extensiones y comandos específicos de Windows no funcionarán. Los archivos ELF y DWARF se descargarán de los servidores de símbolos siguiendo las convenciones de clave definidas aquí. Enclaves es el único escenario soportado, pero estamos abiertos a comentarios sobre la apertura de otros volcados de núcleo Linux.

Cambio de formato de archivo TTD: hemos realizado una actualización importante del formato de archivo para seguimientos de TTD que interrumpen la compatibilidad futura. Las versiones anteriores de WinDbg Preview no podrán abrir seguimientos registrados con esta (y futuras) versiones de WinDbg Preview, pero esta (y futuras) versiones podrán abrir tanto seguimientos nuevos como antiguos.

Otros cambios

  • TTD ahora usará el motor de 64 bits para la indexación y el valor de bits adecuado del motor del depurador para las reproducciones para minimizar posibles problemas de memoria al indexar y problemas de SOS al reproducirse.
  • La ejecución de 'dx' sin parámetros mostrará ahora el espacio de nombres raíz para facilitar la exploración.
  • Ahora puede modificar el símbolo predeterminado y la ubicación de caché de origen a través del menú de configuración.
  • Se ha mejorado la compatibilidad con el registro de AVX-512 (el registro de AVX-512 provocará una ralentización mayor que la normal).
  • Hemos habilitado las licencias sin conexión.

1.0.1905.12001

Mejoras en la mitigación de errores de SymSetDiaSession: nuestra corrección del mes pasado para mitigar el error causado por la inserción de DbgHelp en nuestro proceso todavía no funcionaba en algunos escenarios. Hemos realizado mejoras y seguiremos supervisando los comentarios sobre este error.

Personalización de color de énfasis: muchos escenarios necesitan varias instancias de WinDbg abiertas, y moverse de una a otra puede ser confuso y llevar algún tiempo averiguar cuál es la "correcta". Hemos agregado la capacidad de cambiar el color de énfasis azul para ayudar a distinguir visualmente las sesiones y facilitar el intercambio entre ellas.

Solo tiene que seleccionar la cinta Ver y seleccionar una opción para Color de énfasis en la última sección. Cuando se inician sesiones futuras desde destinos recientes, el color de énfasis se conservará como parte del área de trabajo del destino.

Mejoras de tokenización de origen: la ventana de origen ahora tiene compatibilidad básica para tokenizar archivos de origen de Rust y C++ SEH __try/__except/__finally/__leave.

Mejoras de corrutina: compatibilidad mejorada con variables locales de corrutina y determinadas variables optimizadas.

Configuración predeterminada de símbolos y caché de origen: se ha agregado una opción al menú de configuración en Configuración de depuración para cambiar la ubicación de caché de los símbolos. Nota: hay un problema conocido que hará que se produzca un error en la carga de origen. Agregaremos validación para evitar que esto suceda en una versión futura.

Correcciones de -pv: se ha corregido un error que puede haber impedido que -pv (asociación no invasiva) funcione en algunas circunstancias.

1.0.1904.18001

Corrección del error de SymSetDiaSession: llevamos un tiempo recibiendo informes de un error que impide iniciar WinDbg Preview en algunas situaciones. Hay algunas aplicaciones externas que intentan insertar una versión de DbgHelp en nuestro proceso antes de cargarla. Algunas de ellas están utilizando una versión de DbgHelp en la que faltan funcionalidades, lo que provoca este error cuando intentamos utilizar esas funcionalidades. Hemos agregado una corrección para ello y se realizará el seguimiento si todavía hay escenarios en los que se produce.

Control de fuentes: hemos agregado la configuración para controlar el tamaño de fuente y la fuente. Hay dos configuraciones diferentes, una para ventanas de texto (ventanas con espacio mono, como desensamblado, origen, comando, etc.) y otra para ventanas de herramientas (variables locales, pila, etc.). Todavía hay algunas áreas que no se ven afectadas por estas opciones que se actualizarán en el futuro.

Mejoras de resaltado: el resaltado persistente del texto en la ventana de comandos ahora también resaltará el texto en las ventanas de origen y notas.

Mejoras en la carga de código fuente: hemos cambiado el funcionamiento de la carga de archivos de código fuente. Antes, al abrir un archivo de código fuente, las operaciones del motor como ejecutar comandos adicionales no eran posibles o resultaban impredecibles. Hemos cambiado dónde se produce la carga para permitir un mejor paralelismo y una cancelación más fiable de las operaciones de apertura de fuentes.

Otros cambios y correcciones de errores:

  • Se ha agregado "Ir al desensamblado" en el menú contextual de la ventana de origen.
  • Se ha agregado una casilla para "Seguir las instrucciones actuales" en la ventana de desensamblado.
  • Se ha corregido un error que provocaba que la ventana de comandos funcionara con lentitud al imprimir mucho texto.
  • Se cambiaron las teclas de página arriba y abajo para que funcionen de forma similar a Visual Studio.
  • Cuando se abre un archivo ASM en la ventana de origen, ahora tendrá resaltado básico de comentarios, cadenas y directivas.

1.0.1812.12001

Esta versión incluye estas actualizaciones.

Encabezado de C++ del modelo de datos del depurador: hay un nuevo encabezado de C++, DbgModel.h, incluido como parte del SDK de Windows para extender el modelo de datos del depurador a través de C++. Puede encontrar más información en Información general sobre el modelo de datos del depurador de C++. Esta versión incluye una nueva extensión que agrega algunas características más de "Estilo de API" al modelo de datos del depurador al que se puede acceder a través del comando "dx", JavaScript y el nuevo encabezado DbgModel.h. Esta extensión amplía el modelo de datos para incluir conocimientos sobre la ejecución de ensamblados y código a través del espacio de nombres Debugger.Utility.Code y el sistema de archivos local a través del espacio de nombres Debugger.Utility.FileSystem.

Extensión de tipos sintéticos Con esta nueva extensión de API, tenemos un nuevo ejemplo en nuestro repositorio de GitHub aquí: https://github.com/Microsoft/WinDbg-Samples/tree/master/SyntheticTypes. Esta extensión de JavaScript lee los archivos de encabezado C básicos y define información de tipo sintético para las estructuras y uniones definidas en el encabezado. A través del comando dx, la memoria se puede ver estructurada como si tuviera una PDB con información de tipo para esos tipos.

Otros cambios y correcciones de errores:

  • WinDbg Preview ahora controlará de forma más inteligente la incorporación de ventanas de origen o la ventana de desensamblado al primer plano al ejecutar paso a paso.
  • Se ha reorganizado el título de la ventana de WinDbg Preview para tener información más importante al principio al depurar el kernel.
  • El contraste de fondo alterno en la ventana de comandos debería ser ligeramente más perceptible.

1.0.1810.2001

Esta versión incluye estas actualizaciones.

  • Cuadro de diálogo Nueva configuración al que se accede desde el menú Archivo o la cinta inicio.
  • Cuadro de diálogo de configuración de eventos y excepciones. Este menú cambia el modo en que el depurador controla los eventos y las excepciones, el equivalente de los comandos "sx" o el cuadro de diálogo de filtros de eventos de WinDbg. Seleccione Configuración en la cinta de opciones principal y, a continuación, pulse "Eventos y excepciones" a la izquierda para administrarlos.
  • Se ha mejorado el indexador de TTD con mejor rendimiento. Esto aumenta el rendimiento de indexar archivos de seguimiento TTD, lo que hace que el proceso de indexación sea mucho más rápido (entre 2 y 10 veces más), al tiempo que hace que los archivos de índice sean mucho más pequeños (~50 % más pequeños). Las mejoras de rendimiento son más notables para los seguimientos de más de 4 GB de tamaño, o cuando se usa una máquina con muchos núcleos de CPU (8+). El nuevo indexador hace más factible la depuración de seguimientos muy grandes (más de 50 GB).
  • Nueva marca de inicio debugArch para especificar la arquitectura. WinDbg Preview intenta iniciar el motor del depurador con el valor de bits correcto en el destino para admitir mejor la depuración de código administrado. Hay circunstancias en las que no puede determinar el bit correcto o puede que desee invalidar lo que decida. Use -debugArch x86|amd64 para controlar la arquitectura del motor del depurador.

Otros cambios y correcciones de errores:

  • Se ha corregido un error que provocaba que las barras negras aparecieran en un depurador a pantalla completa con una ventana flotante abierta.
  • Se ha corregido un error que provocaba que las opciones de símbolos se borraran involuntariamente.
  • El historial de comandos ahora se conserva al iniciarse desde destinos recientes.
  • En la ventana modelo de datos, ahora puede editar valores.
  • Ahora quedará más claro que los seguimientos TTD sin indexar no están indexados.
  • Rendimiento mejorado de la ventana de variables locales
  • Se ha agregado un botón de cinta de opciones para guardar los registros de la ventana de comandos en un archivo.
  • Se ha agregado . SeleccioneMany(<projection>) en el conjunto predeterminado de métodos LINQ.

1.0.1807.11002

Esta versión incluye estas actualizaciones.

Guardado y carga automáticos de puntos de interrupción. Este es un primer paso para reemplazar las áreas de trabajo. Vamos a empezar por ese camino habilitando el guardado y la carga de puntos de interrupción. Al iniciar algo que haya depurado anteriormente desde la pestaña "Recientes" del menú archivo ahora cargará los puntos de interrupción desde esa sesión. El plan consiste en expandir esta funcionalidad para conservar más información entre sesiones. Los puntos de interrupción de hardware (ba) y otras propiedades en puntos de interrupción, como el subproceso y el proceso, así como las condiciones, no se guardan actualmente.

Cambios y corrección de errores menores:

  • Se han agregado opciones de línea de comandos -x, -xe, -xd, -xn y -xi para controlar el manejo de excepciones y eventos. Estas opciones de línea de comandos se comportan igual que sus homólogas de comandos.
  • La ventana de notas ahora admite formato en negrita, subrayado y cursiva.
  • Se han corregido algunos problemas de zoom y desplazamiento.
  • Al seleccionar texto en las ventanas de comando, memoria, orígenes o desensamblaje, ahora se mostrará un resaltado claro sobre otras instancias del texto seleccionado.
  • Se ha corregido un error por el que la interrupción de la carga de símbolos provocaba un error en la carga de símbolos para el resto de la sesión.
  • NatVis se volverá a cargar correctamente al reiniciar una sesión.

1.0.1805.17002

Esta versión incluye estas actualizaciones.

Nueva ventana de desensamblado: la ventana de desensamblado ahora incluye:

  • El desplazamiento hacia arriba o hacia abajo cargará continuamente más desensamblaje siempre que sea posible.
  • Resaltado de sintaxis para números, direcciones de código y códigos de operación.
  • Al seleccionar un símbolo de código, la ventana de desmontaje saltará a esa ubicación.
  • Al pasar el puntero sobre números se mostrará una información sobre herramientas que convierte ese número en otras bases.
  • Encabezados que indican el inicio de una función.

Ventana de origen más rápida: la ventana de origen se ha actualizado para ser más rápida y eficaz para los recursos.

Cambios y corrección de errores menores:

  • Se han corregido problemas relacionados con el almacenamiento en caché de símbolos.
  • Se han corregido algunos casos en los que no se podía activar la interrupción inicial cuando no se interrumpía el destino.
  • Si pulsa el tabulador en la ventana de comandos sin nada disponible, el cursor permanecerá ahora en el campo de entrada.
  • WinDbg Preview ahora detectará automáticamente el valor de bits a la hora de abrir archivos CAB.

1.0.1804.18003

Esta versión incluye estas actualizaciones.

Mejoras en el estado y cancelación de símbolos: hay veces en que el depurador muestra BUSY al cargar símbolos y es difícil determinar qué está haciendo y por qué sin !sym ruidoso activado. Hemos actualizado WinDbg Preview para tener una mejor comunicación sobre lo que está haciendo al cargar símbolos para ayudar a solucionar cualquier problema. Además de ver fácilmente lo que sucede exactamente, hemos realizado algunos cambios que deben hacer que los símbolos de cancelación sean más confiables y la ventana Registros contendrá algunos de los detalles que normalmente se generan cuando está habilitado !sym ruidoso. Si pulsa Ver -> Registros, obtendrá la salida completa de carga de símbolos ruidosos sin tener que activarla e intentar volver a cargar los símbolos.

Ventana de notas experimentales: WinDbg Preview ahora tiene una ventana para tomar notas. Solo tiene que pulsar Ver -> "Notas" para abrirla. Si copia o pega en ella, los vínculos de DML se conservarán y seguirán funcionando como si fuera la ventana de comandos. También puede guardar y cargar archivos de notas en la cinta de opciones "Notas" cuando la ventana esté abierta.

Ventana de origen experimental más rápida: para ayudar a mejorar el rendimiento de WinDbg Preview, hay una nueva ventana de origen experimental que es bastante más eficaz. Aún quedan algunas lagunas en los menús contextuales y el resaltado de sintaxis, pero queremos dar a todos la opción de probarlo antes de que esté terminado para que nos den su opinión. Ejecute $UseFastSourceWindow para usarla. Si quiere volver a la antigua, ejecute $UseMonacoSourceWindow. La configuración se conservará entre sesiones; deberá cerrar y volver a abrir las ventanas de origen para obtener la nueva versión.

API de JSProvider versión 1.2: para extensiones de JavaScript que declaran compatibilidad con la versión 1.2 de la API:

  • Cualquier objeto con un método .compareTo que salga del script tendrá un comparador personalizado (los operadores de comparación funcionarán en el evaluador DX y en otros lugares: por ejemplo, IModelObject::Compare)
  • Cualquier objeto con un método .equals que salga del script tendrá un operador de igualdad personalizado (== y != funcionará en el evaluador DX y en otros lugares: por ejemplo, IModelObject::IsEqualTo)
  • Los objetos de modelo de datos o nativos que entren en el script tendrán .compareTo y .equals, lo que permite acceder a cualquier comparador personalizado o implementaciones de igualdad personalizadas.

Cambios y corrección de errores menores:

  • .server ahora enumerará el nombre de dominio completo para facilitar su uso cuando haya problemas de dominio en torno a nombres cortos.
  • Ctrl+G ahora funciona en la ventana de origen.
  • Se ha agregado la barra de direcciones a la ventana de desensamblado.
  • WinDbg Preview ahora controlará _NT_SYMBOL_PATH de forma más esperada.
  • Se ha agregado la opción de línea de comandos -server.
  • Las consultas del modelo de datos TTD ahora se pueden mostrar progresivamente, por lo que si la interrumpe, seguirá viendo algunos resultados. Esta función es todavía experimental y opcional. Ejecute dx $@cursession.TTD.AsyncQueryEnabled = 1 para habilitarla.
  • El comando "dps" ahora tiene vínculos a los archivos de origen a los que hace referencia.

1.1801.19001.0

Esta versión incluye estas actualizaciones.

Resaltado de texto: ahora puede resaltar todas las instancias de texto seleccionado directamente en el depurador. Para usar esta característica, seleccione texto en la ventana de comandos y, a continuación, seleccione "Resaltar" en la cinta de comandos o pulse CTRL+ALT+H. Al usar uno de los que ya están resaltados, se quitará el resaltado.

Si prefiere usar comandos, puede usar el comando "$hl":

$hl ["someValueHere"] - Resalta el texto indicado (o se anula el resaltado si ya lo está)

$hl clearAll – Borra todas las entradas resaltadas

$hl caseSensitive [1|0] - Establece la coincidencia de resaltado con distinción entre mayúsculas y minúsculas o no distingue mayúsculas de minúsculas (el valor predeterminado no distingue mayúsculas de minúsculas)

Esta versión también incluye algunas correcciones de errores menores.

1.1712.15003.0

Esta versión incluye estas actualizaciones.

Consultas de memoria de TTD: ahora puede consultar TTD en busca de accesos a memoria similares a la forma en que consulta las llamadas en la actualidad. Esto le permite encontrar todas las lecturas, escrituras y ejecución que acceden a un intervalo específico de memoria.

Ejemplo de lectura y escritura: dx $@cursession.TTD.Memory(startAddress, endAddress, "rw")

Ejemplo de ejecución única: dx $@cursession.TTD.Memory(startAddress, endAddress, "ec")

Cambios de configuración: WinDbg Preview ahora guardará automáticamente la configuración entre sesiones, incluida la ruta de acceso del símbolo y la ruta de acceso de origen.

Mejoras de JavaScript

  • Los números de 64 bits y las operaciones numéricas en JavaScript contienen ahora un método de módulo que permite una verdadera operación de módulo de 64 bits.
  • Los objetos definidos en JavaScript ahora pueden implementar una noción comparable o igualable personalizada que funcionará en dx mediante operadores estándar de C++ o en operaciones LINQ. Para poder usarlos, el script debe declarar en la matriz initializeScript que admite una nueva versión de la API de host insertando un registro "new host.apiVersionSupport(1, 2)". Una vez hecho esto, puede usar estas funciones en cualquier consulta LINQ de ventana de modelo de datos o dx. Si el método implementa .compareTo(other), es comparable (los operadores de comparación funcionan en dx y LINQ). Si el método devuelve un valor negativo, como "este < otro". Si el método devuelve cero, "este == otro". Si el método devuelve un valor positivo "este > otro". Si el método implementa .equals(other), es igual a (== funciona en dx y LINQ). El método debe devolver true o false.

Cambios y corrección de errores menores:

  • Se ha corregido un error por el que las ventanas de pila y variables locales no funcionaban durante la depuración de arranque.
  • Se ha actualizado la salida de LM para informar con mayor precisión de ProductVersion y campos similares.
  • Se ha habilitado el botón "retroceder" durante las sesiones de TTD
  • Se ha agregado compatibilidad con -lsrcpath
  • Los encabezados de las ventanas de variables locales, inspección y modelo ahora no desaparecen al desplazarse hacia abajo
  • Al volver a WinDbg Preview con ALT+Tab, la ventana de comandos conservará correctamente la ubicación del cursor.
  • Se ha agregado el método abreviado CTRL+ALT+V para alternar el modo detallado.
  • Ahora puede deshabilitar el desplazamiento automático de la ventana de comandos manteniendo seleccionado (o haciendo clic con el botón derecho) el tabulador de la ventana de comandos y seleccionando "Desactivar el desplazamiento automático".
  • Ahora puede depurar procesos secundarios a través de la página de inicio ejecutable avanzada.

1.0.14.0

Esta versión incluye estas actualizaciones.

Experiencia mejorada del servidor de procesos: se ha agregado una nueva notificación en el menú Archivo para mostrar a qué servidor de procesos está conectado y con cuál está interactuando. Como parte de estos cambios, al finalizar una sesión de depuración, la conexión del servidor de procesos se conservará y se puede desconectar en el menú Archivo.

Nuevas opciones de diseño preestablecido en la cinta Ver: hay una nueva opción de "Diseños" en la cinta de opciones "Ver". Actualmente hay tres diseños: el valor predeterminado, uno centrado en el desensamblaje y un mínimo.

Cinta de opciones de depuración de viaje en el tiempo: hay una cinta de opciones de viaje en el tiempo mejorada que se mostrará al depurar un seguimiento de depuración de viaje en el tiempo.

Metadatos de scripts de JavaScript: las extensiones de JavaScript ahora pueden devolver metadatos para propiedades y otras construcciones. Esto significa que la extensión puede proporcionar cadenas de ayuda, indicar la base para mostrar los valores, etc. Los metadatos se proporcionan colocando un descriptor de metadatos en un objeto a través de la presencia de Symbol.metadataDescriptor o una llamada explícita a host.metadata.defineMetadata. Las devoluciones de función, valores iterados y otros contextos de valor pueden devolver metadatos para su valor a través de host.metadata.valueWithMetadata.

Actualizaciones de la API de JavaScript: se han introducido algunos cambios que podrían interrumpir el código fuente en las API del proveedor de JavaScript (incluidos nuevos métodos y propiedades proyectados en objetos nativos). Las extensiones existentes no verán ninguno de los cambios potenciales de interrupción sin indicar que admiten una nueva versión de la API de JsProvider. La compatibilidad con la nueva versión de la API se indica colocando un registro host.apiVersionSupport en la matriz devuelta por initializeScript con una notificación de compatibilidad con la versión 1.1. quizás .. con un valor que indica la compatibilidad con la versión 1.1.

Los cambios en la versión 1.1 de la API incluyen:

  • host.getModuleSymbol y host.getModuleType devuelven null si no encuentran el símbolo en lugar de generar una excepción.
  • Todos los objetos nativos tienen la propiedad address, además de .targetLocation. Si el objeto no tiene una dirección, se producirá una excepción al acceder a la propiedad.
  • Todos los objetos nativos tienen nuevos métodos .getObjectValue y .setObjectValue para tener acceso a las propiedades del objeto que pueden entrar en conflicto con los nombres que JavaScript coloca en el objeto (por ejemplo: 'address').

Cambios adicionales de JavaScript

  • Las extensiones de JavaScript ahora pueden agregar y quitar propiedades en objetos del modelo de datos a través de Object.defineProperty y el operador delete. Agregar o registrar una clase de JavaScript como modelo primario o firma de tipo sigue siendo la forma preferida de manipular el modelo de objetos.
  • Las extensiones de JavaScript ahora pueden modificar variables globales dentro de los módulos del destino de depuración a través de una nueva API host.setModuleSymbol.
  • Todas las funciones matemáticas que se encuentran en el tipo de biblioteca de 64 bits (por ejemplo: .add, .subtract, .multiply, .divide, etc.) ahora están presentes en números de JavaScript.
  • Las funciones y propiedades de JavaScript ahora pueden devolver valores que son enumeraciones a través de serializaciones personalizadas. Un descriptor de acceso de función o propiedad puede devolver host.typeSystem.marshalAs(value, type...) para evocar estas referencias personalizadas.
  • El comando de punto de interrupción del depurador de scripts ahora puede interrumpir los nombres de función además de las posiciones de línea o columna.
  • Los objetos de tipo de las extensiones de JavaScript tienen acceso a su módulo contenedor a través de la propiedad .containingModule.

Cambios y corrección de errores menores:

  • Se ha corregido el formato de las pestañas condicionales de la cinta de opciones para que sean menos confusas.
  • Se ha vuelto a elaborar DML para que sea más estricto en el análisis para mejorar el rendimiento.
  • Varias correcciones con el rendimiento y el comportamiento de CTRL+F.
  • Se ha agregado una advertencia al ejecutar sin privilegios elevados antes de intentar usar TTD.
  • Se ha agregado la opción para invalidar la detección automática del valor de bits de destino.
  • Se han deshabilitado varias opciones del menú Archivo y de la cinta de opciones cuando no se pueden utilizar (como "Ir" cuando se está en un archivo de volcado).

Problemas conocidos:

  • SOS no funcionará en seguimientos x86.

1.0.13.0

Esta versión agrega el seguimiento de viaje en el tiempo. La depuración de viajes en el tiempo permite registrar un proceso y, a continuación, reproducirlo después hacia delante y hacia atrás. La depuración de viajes en el tiempo (TTD) puede ayudarle a depurar problemas más fáciles al permitirle "rebobinar" la sesión del depurador, en lugar de tener que reproducir el problema hasta que encuentre el error. Para obtener más información, consulte Depuración de viajes en el tiempo - Información general.

1.0.12.0

Esta versión fue la primera versión de WinDbg Preview. Para obtener información general sobre las características disponibles en WinDbg Preview, consulte Características principales de WinDbg.

Consulte también

WinDbg - Instalación

WinDbg - Opciones de inicio de la línea de comandos