Share via


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 WinDbg Preview.

1.2402.24001.0

Nuevas características

Depuración de Live 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

El cliente WinDbg para el futuro previsible seguirá necesitando Windows, ya que WinDbg no se ejecuta 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 grabación. Para usar esto, 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 grabar. (consulte los problemas conocidos a continuación).

Para un control más fino, puede grabar con precisión el programa mediante una nueva API de grabación en proceso. Vea cómo con nuestro código de ejemplo y la documentación.

Ventana de registro compacto

La nueva ventana de registro es similar a la salida del r comando. 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 e comandos (Escribir valores) en memoria ahora admiten direcciones físicas como los d comandos (Memoria para mostrar). Tenga en cuenta que estas opciones solo se admiten en modo kernel:

Opción Descripción
/p Usa direcciones de memoria física para la pantalla. 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 almacenada en caché. Se deben incluir los corchetes alrededor de c .
/p[uc] Igual que /p, excepto que se leerá la memoria sin almacenar 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, vea e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Enter Values).

Correcciones de errores

  • Compatibilidad con la desmangling de nombres de Rust en la depuración de Linux
  • Mejoras en la depuración de CLR
    • Adición de la capacidad de forzar fotogramas CLR de la pila de modo mixto
      • Se ForceMixedModeStackWalker agregó la configuración agregada a config.xml o DbgX.xml.
      • Se ha agregado !forceclrmixedmodeunwind un comando para investigaciones puntuales o si no se puede cambiar la configuración.
  • Mejoras generales de la depuración clR en Linux
  • Corrección de una serie de problemas con respecto a LinuxKernel.js y variables por cpu
    • Se ha agregado !runq un comando a LinuxKernel.js para poder volcar las colas de ejecución del programador del kernel por cpu (de forma similar al comando de runq la utilidad de bloqueo de Linux).
    • Se han corregido varios comandos en LinuxKernel.js para corresponder a 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 del superbloqueo en su lugar (blockdev_superblock)
  • Varias correcciones natvis para funcionar más como las versiones recientes de Visual Studio
  • Preferir sourcelink frente a sourceinfo heredado
    • Se ha agregado !lmsourcesinfo <module> el comando 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 viajes de tiempo en ARM64

No solo winDbg se ejecuta de forma nativa en ARM64, también se ha habilitado la depuración de viajes en 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 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 ambigua de puntos de interrupción

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, vea Resolución ambigua de puntos de interrupción.

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 .* 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 WinDbg Preview puede empezar a las sesiones de depuración remota y a los archivos de volcado de memoria solo. Para obtener más información, consulta WinDbg - Modo restringido.

Compatibilidad con variables sombreadas

En versiones anteriores, WinDbg produce errores de "Símbolo ambiguo" al intentar evaluar (??) o mostrar (dx) una variable que comparte su nombre con otra variable en el ámbito. Windbg ahora 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 resaltadas. Dado que este resaltado es útil al examinar los patrones de memoria, ahora también resaltará números equivalentes en otros radios, 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, vea 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 host como a los estados invitados 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 pueden hacer clic en los vínculos de la ventana de comandos mediante el teclado (Mayús+Entrar)
  • Navegación de teclado mejorada del menú principal
  • Navegación de teclado mejorada de la cinta de opciones
  • Mayor contraste en los elementos de la interfaz de usuario

Nuevo tipo de acceso a datos "Sobrescritura" para time Travel Debugger

Time Travel Debugger (TTD) ahora proporciona un tipo de acceso a datos "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 escala de tiempo

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 nuevo marcador con el nombre de ejemplo de la primera llamada API en Mostrar aplicación 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 seleccionar y mantener presionado (o haga clic con el botón derecho) en el marcador para desplazarse a esa posición, cambiar el nombre o eliminar el marcador.

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

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 que muestra cinco módulos enumerados.

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 portable (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) y consumidas por depuradores y otras herramientas. Para obtener más información, vea Símbolos PDB portátiles.

Otros cambios y correcciones de errores

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

1.0.1912.11001

Escalas de tiempo de TTD: hemos agregado una nueva ventana 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 están presentes) y puntos de interrupción. Para obtener más información, consulte WinDbg Preview - Timeline( Versión preliminar de WinDbg: escala de tiempo).

Cambio al cromo de ventana predeterminado: el cromo de ventana personalizado que usamos, mientras que el más bonito, estaba causando algunos problemas de escalado y cambio de tamaño para un número notable de personas, por lo que hemos optado por quitarlo por el momento.

Navegación de teclado mejorada del menú Archivo: el menú archivo ahora es mucho más fácil de navegar 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 "Servicios" al cuadro de diálogo 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

Las mejoras en los objetos - Llamadas de TTD Ahora las consultas de llamadas incluyen nombres de parámetros, tipos y valores. Al consultar entre seguimientos para las llamadas de función, puede obtener parámetros totalmente tipados y sus valores, lo que facilita el filtrado de los resultados por parámetros.

La compatibilidad con Open Enclave : la versión preliminar de WinDbg ahora puede depurar aplicaciones de Open Enclave (OE) para obtener más información, consulte Depuración de Open Enclave).

Volcados de memoria 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 ENANOs (ACTUALMENTE no se admite ENANO 5) tanto de enclaves como de aplicaciones Linux. Al abrir un volcado de núcleo desde una aplicación que no es de Windows, las ventanas básicas y los comandos deben funcionar correctamente, pero la mayoría de las extensiones y comandos específicos de Windows no funcionarán. Los archivos ELF y ENANO se descargarán de los servidores de símbolos siguiendo las convenciones de clave definidas aquí. Los enclaves son el único escenario admitido, pero estamos abiertos a comentarios sobre cómo abrir otros volcados de memoria principales de Linux.

Cambio de formato de archivo TTD: hemos realizado una actualización importante del formato de archivo para seguimientos TTD que interrumpen la compatibilidad con el avance. Las versiones anteriores de la versión preliminar de WinDbg no podrán abrir seguimientos grabados con estas versiones (y futuras) de WinDbg Preview, pero estas versiones (y futuras) podrán abrir seguimientos nuevos y antiguos.

Otros cambios

  • TTD ahora usará el motor de 64 bits para la indexación y el bitness 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 la grabación de AVX-512 (la grabación 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 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 en él y seguirá supervisando los comentarios sobre este error.

Personalización de color de énfasis: una gran cantidad de escenarios necesitan varias instancias de WinDbg abiertas, y moverse hacia atrás y hacia delante entre ellos puede ser confuso y tardar algún tiempo en averiguar cuál es la "derecha". 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.

-pv fixes : 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 SymSetDiaSession: hemos tenido informes durante un tiempo de error que impide que la versión preliminar de WinDbg se inicie en algunas situaciones. Hay algunas aplicaciones externas que intentan insertar una versión de DbgHelp en nuestro proceso antes de cargarla. Algunos de ellos usan una versión de DbgHelp con funcionalidad que falta, lo que provoca este error cuando intentamos usar esas características. Hemos agregado una corrección para esto 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 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. Anteriormente al abrir un archivo de código fuente, las operaciones del motor como ejecutar comandos adicionales no eran posibles o eran impredecibles. Hemos cambiado donde se produce la carga para permitir un mejor paralelismo y una cancelación más confiable de las operaciones de apertura de origen.

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 a "Seguir las instrucciones actuales" en la ventana de desensamblado.
  • Se ha corregido un error que provocaba que la ventana de comandos se realizara lentamente al generar una gran cantidad de 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 C++ del modelo de datos del depurador: hay un nuevo encabezado de C++, DbgModel.h, incluido como parte de Windows SDK 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 extensiones extensiones del 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:

  • La versión preliminar de WinDbg 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.
  • Vuelva a organizar 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 alternado en la ventana de comandos debe ser ligeramente más notable.

1.0.1810.2001

Esta versión incluye estas actualizaciones.

  • Cuadro de diálogo nuevo 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 principal y, a continuación, presione "Eventos y excepciones" a la izquierda para administrarlos.
  • Se ha mejorado el indexador TTD con un 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 2x-10x) 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 que sea más factible depurar seguimientos muy grandes (50 GB+).
  • Nueva marca de inicio debugArch para especificar la arquitectura. WinDbg Preview intenta iniciar el motor del depurador con el bitness 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 decide. 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 aparezcan en un depurador de 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.
  • Los seguimientos TTD sin indexar ahora serán más claros que no están indexados.
  • Rendimiento mejorado de la ventana variables locales
  • Se ha agregado un botón de cinta de opciones para guardar los registros de la ventana de comandos en un archivo.
  • Añadido. SeleccioneMany(<projection>) en el conjunto predeterminado de métodos LINQ.

1.0.1807.11002

Esta versión incluye estas actualizaciones.

Ahorro automático y carga de puntos de interrupción. Este es un primer paso para reemplazar las áreas de trabajo. Estamos iniciando esa ruta habilitando el guardado y la carga de puntos de interrupción. Iniciar algo que haya depurado anteriormente desde la pestaña "Recientes" del menú archivo cargará ahora 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 menores y correcciones de errores:

  • Se agregaron opciones de línea de comandos -x, -xe, -xd, -xn y -xi para controlar el control de excepciones y eventos. Estas opciones de línea de comandos se comportan igual que sus elementos de contador 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, se saltará la ventana de desensamblado a esa ubicación.
  • Al mantener el puntero sobre números se mostrará una información sobre herramientas que convierte ese número en otras bases.
  • Encabezados que significan 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 menores y correcciones de errores:

  • Se han corregido problemas relacionados con el almacenamiento en caché de símbolos.
  • Se han corregido algunos casos en los que la interrupción inicial de alternancia no se puede usar cuando el destino no se interrumpe
  • Si presiona la pestaña en la ventana de comandos sin nada disponible, el cursor permanecerá ahora en el campo de entrada.
  • La versión preliminar de WinDbg ahora detectará automáticamente el bit a la hora de abrir archivos CAB.

1.0.1804.18003

Esta versión incluye estas actualizaciones.

Mejoras de estado y cancelación de símbolos: hay tiempo en el que el depurador muestra símbolos ocupados cargando símbolos y es difícil determinar lo que está haciendo y por qué sin !sym ruidoso habilitado. Hemos actualizado la versión preliminar de WinDbg 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 se alcanza Vista:> registros, obtendrá la salida completa de carga de símbolos ruidosos sin tener que activarla e intentar volver a cargar los símbolos.

Ventana notas experimentales : WinDbg Preview ahora tiene una ventana para tomar notas. Solo tienes que pulsar La vista -> "Notas" para abrirla. Si copia o pega en él, los vínculos 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. Todavía hay algunas lagunas en torno a los menús contextuales y el resaltado de sintaxis, pero queremos dar a todos la opción de probarlo antes de que haya terminado de enviarnos comentarios anticipados. Ejecute $UseFastSourceWindow para usarlo. Si quiere volver al antiguo, ejecute $UseMonacoSourceWindow. La configuración se conservará entre sesiones; deberá cerrar y volver a código abierto ventanas para obtener la nueva versión.

JSProvider API 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 en él (los operadores de comparación funcionarán en el evaluador DX y en otra parte: por ejemplo: IModelObject::Compare)
  • Cualquier objeto con un método .equals que salga del script tendrá un operador de igualdad personalizado en él (== y != funcionará en el evaluador DX y en otra parte: por ejemplo: IModelObject::IsEqualTo)
  • Los objetos de modelo de datos o nativos que escriban el script tendrán .compareTo y .equals en ellos que permiten el acceso a cualquier comparador personalizado o implementaciones de igualdad personalizadas.

Cambios menores y correcciones de errores:

  • .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 agregó la barra de direcciones a la ventana de desensamblado.
  • La versión preliminar de WinDbg ahora controlará _NT_SYMBOL_PATH de forma más esperada.
  • Se agregó 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 característica sigue siendo experimental y opcional. Ejecute dx @$cursession.TTD.AsyncQueryEnabled = 1 para habilitarlo.
  • 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 presione 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"] - Resaltar dar texto (o desmarcar si ya está resaltado)

$hl clearAll – Borrar todas las entradas resaltadas

$hl caseSensitive [1|0] - Establecer 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 TTD: ahora puede consultar TTD para obtener 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 único: dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")

Configuración cambios: la versión preliminar de WinDbg 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 y números de 64 bits en JavaScript ahora contienen un método de módulo que permite una operación de módulo de 64 bits verdadera.
  • 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 usar esto, 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, "this == other". 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 menores y correcciones de errores:

  • 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.
  • Habilitado el botón "salir atrás" durante las sesiones de TTD
  • Se ha agregado compatibilidad con -lsrcpath
  • Los encabezados de las ventanas locales, inspección y modelo ahora no desaparecen al desplazarse hacia abajo
  • Cuando ALT+Tabbing vuelva a WinDbg Preview, 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 seleccionando y manteniendo presionada (o haciendo clic con el botón derecho) en la pestaña 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 con qué servidor de procesos está conectado e interactuando con él. 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 preesfijo en la cinta Vista: hay una nueva opción "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 viajes de tiempo: hay una cinta de opciones de viaje de tiempo mejorada que se mostrará al depurar un seguimiento de depuración de viaje de 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 el radix 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. Function devuelve, itera valores y otros contextos de valor pueden devolver metadatos para su valor a través de host.metadata.valueWithMetadata.

Actualizaciones de la API de JavaScript: algunos cambios importantes de nivel de origen potencialmente se realizaron en las API dentro del proveedor de JavaScript (incluidos los nuevos métodos y propiedades proyectados en objetos nativos). Las extensiones existentes no verán ninguno de los cambios potencialmente importantes sin indicar que admiten una nueva versión de JsProvider API. 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 producir una excepción.
  • Todos los objetos nativos tienen la propiedad address en ellos 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 en ellos 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, .resta, .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 menores y correcciones de errores:

  • Se ha corregido el formato de las pestañas condicionales de la cinta de opciones para ser menos confusos.
  • Se ha vuelto a trabajar 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 agregó una advertencia al ejecutar sin privilegios elevados antes de intentar usar TTD.
  • Se agregó la opción para invalidar la detección automática de bits de destino.
  • Deshabilitó varios menús de archivos y opciones de cinta de opciones cuando no se pueden usar (como "Go" cuando se encuentra en un archivo de volcado de memoria).

Problemas conocidos:

  • SOS no funcionará en seguimientos x86.

1.0.13.0

Esta versión agrega el seguimiento de viajes de tiempo. La depuración de viajes de tiempo permite grabar un proceso y, a continuación, reproducirlo más adelante y hacia atrás. La depuración de viajes de 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, vea Time Travel Debugging - Overview.

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 la versión preliminar de WinDbg, características principales de WinDbg.

Consulte también

WinDbg - Instalación

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