Notas de la versión

WinDbg logo with a magnifying glass inspecting bits.Logotipo de WinDbg con una lupa inspeccionando bits.

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

1.2606.22001.0

Características nuevas

  • Se añadió compatibilidad con la configuración KDNET para kernel seguro (-s) en kdnet.exe.
  • Se han mejorado los flujos de trabajo de depuración de ASAN en WinDbg (¡se acabó la avalancha de AV al iniciar!).
  • Se han agregado sugerencias de instrucciones de desensamblaje más enriquecidas y contenido de ayuda basado en Markdown local.
  • Se ha agregado compatibilidad con la navegación mediante teclado en flujos de trabajo de conexión a dispositivo.
  • Se ha añadido la posibilidad de adjuntarse directamente a procesos de WSL.
  • Se ha agregado compatibilidad básica con los registros APX en las vistas de registros del depurador.

Mejoras en el motor de depuración

  • Se ha ampliado la compatibilidad con registros y contextos de Linux mediante el manejo de SVE/SME y XSTATE, incluida la compatibilidad con el desenrollado de marcos de señales.
  • Se ha mejorado el comportamiento de la descarga del código fuente a través de srcsrv, incluyendo una mejor gestión del modo seguro y mejores diagnósticos.
  • Confiabilidad mejorada de la galería de extensiones.
  • Se ha mejorado la resolución de problemas con símbolos mediante diagnósticos adicionales y un mejor comportamiento de recurso alternativo para la vinculación de código fuente.
  • Se ha mejorado la fiabilidad en la recuperación del contexto de registros desde KD y los contextos de registros de los complementos.
  • Se ha añadido compatibilidad con char8_t, se ha mejorado el manejo de PE/DWARF con paquetes de depuración independientes y se han mejorado los diagnósticos para los casos de datos respaldados por imágenes con !heap.
  • Se ha ampliado la cobertura de dispositivos KDNET y su fiabilidad, incluidas correcciones en las rutas de NIC para Intel E800/E2500/10G/40G y otras.
  • Se han corregido los errores en el conjunto de registros EXDI y se ha corregido el manejo de casos de registros vectoriales de mayor tamaño (>256 bits).

Mejoras generales de la interfaz de usuario

  • Se ha mejorado la presentación de errores en los flujos de inicio y conexión, con diagnósticos de cara al usuario más claros.
  • Se han mejorado las interacciones del Editor hexadecimal y del modelo de datos, incluidos los menús contextuales, el resaltado DML y la estabilidad del foco en las cuadrículas DMO.
  • Se ha mejorado la accesibilidad en las interfaces de comandos y de entrada, incluyendo los nombres de automatización, la visibilidad del foco con alto contraste y las señales de foco del teclado.
  • Se ha mejorado la gestión de los directorios de inicio del arranque remoto para evitar errores provocados por rutas iniciales no válidas.
  • Se agregó un comando Copy log file path (Copiar ruta de acceso del archivo de registro ) en la ventana de la herramienta Registros.
  • Se ha añadido la función de deshacer la navegación mediante clics en el desensamblado y se ha mejorado el comportamiento de los marcadores y el guardado de scripts en ventanas flotantes.
  • Se ha añadido una opción configurable de recurso alternativo para la codificación de código fuente y la posibilidad de desactivar las solicitudes de configuración de volcado local.

Depuración por viaje en el tiempo (TTD)

  • Se actualizó TTD de la versión 1.11.592 a la 1.11.610 en toda la carga útil de la 2603 a la 2606.
  • Se ha corregido un error que provocaba un bloqueo al ejecutar .cxr en trazas TTD y se ha impedido la edición de registros no válidos durante la depuración de trazas TTD.
  • Se ha mejorado la administración de los escenarios de WinDbg -recordengine con procesos del Subsistema de Windows para Linux (-pwsl) como destino.

Correcciones de errores

  • Se ha corregido la detección automática de la arquitectura del motor para rutas de ejecutables sin extensión, lo que evita la incompatibilidad entre x86 y x64 al iniciar el programa.
  • Se ha corregido la depuración en tiempo real de Linux con el complemento GDB.
  • Se han corregido problemas de depuración de WOW64 cuando un motor x64 tiene como destino un proceso x86.
  • Se han corregido los errores de recorrido del montón (heap-walk) en Linux en algunos escenarios de volcado de memoria.
  • Se han corregido los falsos errores de restauración de puntos de interrupción omitiendo las entradas que no pueden generar comandos de restauración válidos.
  • Se han corregido problemas recurrentes de la interfaz de usuario en ventanas flotantes y con ocultación automática, así como el comportamiento del diseño de la ventana de comandos.
  • Se han corregido las regresiones relacionadas con empty-automation-property y los problemas relacionados con las etiquetas de accesibilidad.
  • Se corrigieron los errores de análisis de manifiestos de VPack symsrv2 y se mejoró el comportamiento de cancelación en las operaciones de descarga de símbolos y código fuente.
  • Se corrigió la búsqueda de kdnet.exe VerifiedNICList para las instalaciones con alias de ejecución.

1.2603.20001.0

Características nuevas

  • Se ha añadido compatibilidad inicial con las Extensiones Vectoriales Escalables (SVE) de ARM64, sentando las bases para la depuración de objetivos ARM64 que utilizan registros SVE.
  • Se han agregado botones Abrir área de trabajo y Guardar área de trabajo para facilitar la administración de sesiones.
  • Se ha agregado el modo de tema del sistema: WinDbg ahora sigue la configuración del tema claro/oscuro del sistema Windows.
  • Texto de ayuda significativamente mejorado para las instrucciones de CPU en la vista de desensamblaje, proporcionando una mejor documentación integrada.
  • Se ha mejorado la confiabilidad de la reconexión del protocolo inverso KDNET cuando el destino se reinicia inesperadamente.
  • kdnet.exe La herramienta de configuración ahora se incluye con WinDbg
  • Se agregaron opciones -Q de línea de comandos y -WF a WinDbg

Mejoras del motor de depuración

  • Control de estado de registro mejorado (XSTATE) en diversas configuraciones de destino
  • Los registros vectoriales SIMD ahora se pueden mostrar en varias vistas (byte, word, dword, float, etc.), lo que facilita la inspección de los datos empaquetados en diferentes formatos.
  • Los enteros largos ahora se imprimen con el radix predeterminado en el modelo de datos
  • Se ha añadido una API para abrir manualmente los símbolos de composición objetivo.
  • Se ha mejorado el rendimiento de las búsquedas de nombres de símbolos, especialmente para DWARF y otros proveedores de símbolos de complementos.

Mejoras generales de la interfaz de usuario

  • Se ha actualizado el SDK de .NET a la versión 10.0.103 (actualización de seguridad)
  • Se han actualizado los iconos de menú de la ventana de comandos y se han agregado más acciones
  • Pegar en la entrada de la ventana de comandos ahora quita los espacios en blanco al final.

Depuración por viaje en el tiempo (TTD)

  • Se actualizó TTD a la versión 1.11.592
  • Se ha mejorado la robustez del indexador al indexar rastros grandes (decenas a cientos de GB). Esto requiere un cambio en el formato de índice, por lo que los seguimientos existentes deberán volver a indexarse.
  • $@cursession.TTD.Calls() ahora proporciona información más precisa sobre los parámetros de los stubs de ensamblador de 32 bits.
  • Se ha corregido un problema por el que el proceso registrado no devolvía correctamente el código de salida de un punto de entrada ejecutable.

Correcciones de errores

  • Se ha corregido una marca de paridad x64 incorrecta que se muestra en la ventana Registros.
  • Se ha corregido un problema por el que no se probaba la ruta del PDB incrustado en el directorio de depuración cuando se encontraba primero un PDB no coincidente en la ruta de búsqueda.
  • Se ha corregido un bloqueo en los recorridos de la pila CLR cuando el explorador de pila DBI entraba en un bucle.
  • Se ha corregido un error provocado por un puntero nulo devuelto por GetSymbolById en la composición CLR.
  • Se ha corregido el problema por el que el indicador de la ventana de comandos no aparecía al abrirla al final de una sesión
  • Se han corregido errores de entrada e historial de ventanas de comandos
  • Se ha corregido un problema por el que las sugerencias de error de script no aparecían en el Editor de scripts.
  • Se ha corregido un bloqueo durante las operaciones de acoplamiento de ventanas de herramientas.
  • Se ha corregido un problema por el que algunas lecturas del Registro no reflejaban los valores más recientes.
  • Se ha corregido un problema por el que el texto de entrada de la ventana de comandos "rebotaba" al mover el cursor
  • Se ha corregido un problema por el que Alt+Espacio no invocaba el menú sistema para ventanas flotantes.
  • Se ha corregido un problema por el que la expansión de elementos en la ventana Variables locales desplazaba el elemento fuera de la vista.

1.2601.12001.0

Mejoras generales de la interfaz de usuario

  • Actualizado a .NET 10
  • Ventana de script actualizada para usar el editor de Mónaco más reciente (0.55.1)
  • Se han añadido botones de Deshacer/Rehacer a la pestaña Script de la cinta de opciones
  • Enfoque mejorado durante la navegación por teclado entre ventanas de herramientas
  • Se han corregido problemas menores con el desplazamiento y la selección en la ventana Desensamblador.
  • Se ha corregido un problema por el que la ventana de registros mostraba valores diferentes a los del comando register.
  • Se han corregido varios problemas relacionados con el DPI alto
  • Se comprueba y se informa de la antigüedad del depurador con una advertencia si es demasiado antiguo
  • Se ha corregido un bloqueo cuando se seleccionaba el modo gráfico en la ventana de modelo abierta con una consulta en blanco.
  • Se implementaron registros a prueba de fallos para WinDbg.

Mejoras en el motor de depuración

  • Se ha mejorado el rendimiento de las búsquedas de nombres de símbolos que no están presentes (especialmente para DWARF y otros complementos)
  • Se ha agregado una comprobación null en los controladores OnTargetCompositionEvent.
  • Se ha habilitado la lectura de la máscara de etiquetas de puntero

Depuración por viaje en el tiempo (TTD)

  • TTD, versión 1.11.567:> 1.11.584
  • Varias mejoras para aumentar el rendimiento y la solidez de la indexación, incluida una aceleración de 5 veces para rastros grandes (más de 100 GB).
  • Se ha corregido el problema notificado por el cliente: el acceso al TEB a través del registro de segmentos, mediante direcciones de 32 bits, funciona. (1.11.572)
  • Pilas de llamadas más precisas en torno a las llamadas al sistema. (1.11.582)

Correcciones de errores

  • Se han corregido los errores de información de tipo no encontrada debidos a un manejo incorrecto de ubicaciones complejas.
  • Se han resuelto los problemas de terminación de línea del depurador de consola con E/S redirigida y caracteres no Unicode.
  • Se ha corregido el filtrado de eventos CPR/EPR en Linux
  • Se corrigieron las etiquetas de función que faltan en la vista de desensamblaje para Linux.
  • Resolución fija de funciones de importación en archivos binarios de Linux compilados con CET
  • Se han corregido los puntos de interrupción sin resolver que provocaban que las sesiones de depuración en tiempo real de Linux quedaran inutilizables tras la carga de módulos.
  • Se ha corregido el problema por el que las variables locales de subproceso no se podían ver en Linux cuando se conectaba a través de GDBServer.
  • Se ha corregido el error de superposición de páginas de la imagen ELF cuando el servicio de memoria del objetivo subyacente no implementa información de memoria.
  • Se ha corregido el error de las funciones de impresión variádicas en el depurador debido a un uso incorrecto de los parámetros de formato.
  • Se ha corregido la inconsistencia en el manejo de long, unsigned long y wchar_t en sistemas operativos variantes de UNIX (LLP64 frente a LP64).
  • Se ha corregido el interbloqueo al esperar al subproceso de limpieza durante el apagado del depurador.

1.2511.21001.0

Características nuevas

  • Se ha mejorado la selección de archivos con un manejo basado en prioridades, ampliado a archivos CAB y carpetas para una mejor selección de archivos de volcado.
  • Se han mejorado las descargas de archivos de símbolos ELF, DWARF y Mach-O con un registro y mensajes de estado optimizados.
  • DBGHELP_DIA_PATH variable de entorno ahora tiene prioridad sobre los módulos cargados actualmente para mejorar el control de símbolos
  • Mejoras en la indexación de nombres de miembro para mejorar la navegación de símbolos y el rendimiento de la búsqueda

Correcciones de errores

  • Se ha resuelto un problema por el que se produciría un error en las escrituras de memoria en destinos de Linux dinámicos
  • Se ha corregido la carga y el funcionamiento de las extensiones DAC y SOS al conectarse a objetivos de depuración en tiempo real.
  • Se ha resuelto el problema en el que los archivos ejecutables de proceso adjuntos aparecían como "imageXXXXXXXX" en lugar de nombres reales.
  • Se ha corregido el código de descarga de NuGet.exe dañado por la implementación de la caché negativa.
  • Se han corregido retrasos en la interfaz de usuario al usar exdigdbsrv
  • Se han administrado las excepciones WMI del verificador de compatibilidad de soluciones provisionales para USB 3.1.
  • Se han quitado las advertencias incorrectas (C6518) de las anotaciones SAL de wdbgexts.h
  • Se ha corregido la visualización de la información de tipos para los tipos char16_t y char32_t en plataformas Linux.

Mejoras generales de la interfaz de usuario

  • Añada la nueva opción de Cinta de Opciones simplificada, que reduce el espacio vertical de la Cinta de Opciones.
  • Se ha habilitado la aceleración de hardware gráfico al ejecutarse en sesiones RDP (Protocolo de escritorio remoto).
  • Se ha mejorado el rendimiento de la actualización en la ventana de desensamblado.
  • Se ha corregido el escalado de DPI para los menús contextuales de las ventanas de herramientas en diferentes configuraciones de monitor.
  • Se ha habilitado la selección de la información de la versión en la página Acerca de para facilitar su copia.
  • Se ha quitado la compatibilidad con la tecnología IDNA obsoleta (nombres de dominio internacionalizados en aplicaciones)
  • Se ha depurado el registro del depurador para excluir las entradas de inicio temprano de la aplicación de la galería de extensiones y otras operaciones internas.

Depuración por viaje en el tiempo (TTD)

  • 1.11.553 -> 1.11.567

1.2510.7001.0

Mejoras en la interfaz de usuario y la experiencia

  • Abrir cualquier instancia de ventana de memoria desde la barra de opciones

Depuración y mejoras de rendimiento

  • Se ha evitado el secuestro de las llamadas de retorno de la instrumentación de procesos para mejorar la fiabilidad de la depuración.
  • Se ha mejorado el historial de variables de Time Travel Debugging (TTD) con la opción de formato tabular para una mejor visualización de los datos.
  • Se ha corregido un fallo en el historial de variables al reutilizar generadores, asegurándose de que las funciones se capturen adecuadamente.
  • Evaluador mejorado para puntos de interrupción ambiguos para controlar escenarios de depuración más complejos
  • Se ha corregido la visualización vacía de la columna de Publisher para las aplicaciones de la tienda y los procesos PLM.

Actualizaciones de la API de TTD y Replay

  • Se ha actualizado el comando !tt para que, al ejecutarse sin argumentos, muestre una ayuda de una línea y la posición actual, en lugar de desplazarse al inicio del rastreo.
  • Se agregó la disponibilidad del SDK de API de Reproducción experimental para la integración externa
  • Métodos mejorados del modelo de datos del historial de variables para mejorar el acceso mediante programación
  • Se han corregido diversas optimizaciones en las operaciones de reproducción de TTD y se han mejorado las funciones de devolución de llamada.

Correcciones de errores y estabilidad

  • Se corrigió el informe de errores que mostraba "error: la operación se completó correctamente"
  • Se han solucionado problemas de procesamiento de URLs del host en los comandos de fasttfgitview.
  • Se ha mejorado el texto de error relacionado con la resolución de símbolos para proporcionar comentarios más claros
  • Se han corregido problemas con la carga de archivos de bases de datos de programas (PDB) para ensamblados .NET mapeados a nivel plano en Linux.
  • Se ha resuelto un error de lectura de datos no inicializados en los componentes de depuración.
  • Se han corregido problemas de búsqueda de archivos de la galería de extensiones con nombres de archivo cortos.

1.2508.27001.0

Características nuevas

  • Se ha agregado una opción para deshabilitar la aceleración de hardware gráfico para WinDbg.
  • Se agregó una nueva .AlternateFunctions propiedad en <frame>.Attributes.SourceInformation.

Correcciones de errores

  • Se ha corregido un problema por el que la página Iniciar depuración no se actualizaba después de abrir un cuadro de diálogo.
  • Se ha corregido un problema con los elementos de menú de pestañas que se conectaban a dispositivos que no eran accesibles para la automatización de la interfaz de usuario.
  • Se corregía un problema donde al explorar el historial de comandos, la entrada de comando no confirmada se perdía.
  • Se ha corregido el manejo de la rueda del ratón para que el desplazamiento sea fluido (ratones con ruedas de desplazamiento suave y trackpads).
  • Se ha corregido un comportamiento recursivo engañoso al avanzar paso a paso en la depuración de x86 de 32 bits cuando los prologos de las funciones llamaban a __SEH_prolog4.
  • Se ha corregido un error en la configuración de las galerías de extensiones basadas en NuGet .AllowNugetExeUpdate.
  • Se ha corregido un error al leer símbolos DWARFv5 en torno a las tablas .debug_names y los índices de nombres.
  • Se ha corregido el comportamiento al entrar en el código para líneas de código fuente con múltiples llamadas filtradas por pasos.
  • Se ha corregido un fallo causado por una cadena de versión inválida natvis.
  • Se ha corregido la transmisión de bloques de entorno para CreateProcessW en la depuración remota.
  • Se han corregido los comandos !percpu y !allpercpu para los punteros de CPU asignados dinámicamente mediante alloc_percpu en el kernel de Linux.
  • Se ha resuelto un problema con la enumeración de CPUs en las sesiones de depuración del kernel de Linux.
  • Se han corregido las etiquetas de funciones que faltaban en la ventana Desensamblado para objetivos con símbolos que no son de la base de datos del programa (PDB).
  • Se ha corregido el manejo de las reubicaciones de marcadores de posición en binarios ELF.
  • Se ha corregido una doble liberación de memoria en el manejo de símbolos DWARF de DW_OP_fbreg.
  • Se ha corregido una regresión en el código de recopilación de volcados que impedía la recopilación completa de volcados de memoria para procesos emulados x64 en ARM64.

Mejoras generales de la interfaz de usuario

  • Se han realizado mejoras en la forma en que WinDbg restaura la posición de la ventana al cambiar los monitores de diferentes resoluciones. WinDbg ahora también guarda y restaura las posiciones ancladas.
  • Se ha implementado el desplazamiento horizontal mediante la rueda del mouse mientras mantiene presionada la tecla Mayús.
  • Se ha actualizado el selector Abrir carpeta para usar el cuadro de diálogo moderno.

1.2506.12002.0

Características nuevas

WinDbg ahora incluye los depuradores en modo consola (cdb.exe / ntsd64.exe / kd.exe). Para desambiguar los archivos binarios entre sí y no interferir con las copias existentes de las herramientas, los archivos binarios incluyen el nombre de la arquitectura:

  • cdbARM64.exe/cdbX64.exe/cdbX86.exe
  • kdARM64.exe/kdX64.exe/kdX86.exe
  • ntsdARM64.exe/ntsdX64.exe/ntsdX86.exe

Más características:

  • El título de la ventana de herramientas del modelo de datos se puede personalizar mediante el $OpenDmoToolwindow comando y también se puede cambiar a través del menú contextual de la barra de título.
  • Nueva configuración del depurador para habilitar descargas HTTP paralelas de archivos de símbolos. Esta opción está habilitada de forma predeterminada.

Correcciones de errores

  • Se ha corregido cómo se guarda la ruta de destino para los archivos de volcado abiertos a través de la línea de comandos (-z) de manera que pueda abrirse correctamente desde el menú Recientes.
  • Se ha corregido un bloqueo en la ventana Editor de scripts .
  • Se ha corregido cómo WinDbg controla los finales de línea incoherentes en los archivos de origen abiertos en la ventana Origen para proporcionar una vista más coherente de los archivos de origen.
  • Se ha corregido un problema por el que las credenciales no se renovaron para los servidores de símbolos HTTP al usar la nueva característica de descargas paralelas.
  • Se ha corregido un problema por el que las propiedades de los objetos del modelo de datos no se enumeraban correctamente en las extensiones de JavaScript.
  • Se ha corregido un problema por el que el texto de columna desapareció al reordenar mediante arrastrar.
  • Se ha corregido un problema por el que la configuración del filtrado de eventos a través de opciones de línea de comandos no se aplicaba al destino de depuración en el inicio.
  • Se ha corregido un problema por el que, a veces, al desacoplar una ventana de herramientas, el contenido quedaba en blanco.
  • Se ha corregido un problema por el que no se podían depurar minivolcados de procesos emulados X64 en máquinas ARM64.
  • Se ha solucionado un problema en el que los breakpoints ambiguos provocaban fallos en el depurador.
  • Se ha corregido un problema por el que GDBServer se bloqueaba al salir del proceso al depurar un proceso de Linux activo.
  • Se han corregido varios problemas relacionados con la depuración de extensiones de JavaScript (.scriptdebug), incluida una mejor enumeración de propiedades y la corrección de un problema que provocaba un bloqueo.

Mejoras generales de la interfaz de usuario

  • Alineó la ventana emergente de sugerencia de comandos con el cursor. Ahora solo muestra las sugerencias de autocompletado en lugar de todo lo que hay antes del cursor.
  • Se han añadido más detalles al cuadro de diálogo de error al abrir un objetivo de depuración. En caso de errores al abrir volcados, se proporciona un hipervínculo al archivo TSG que no se ha podido abrir.
  • Se ha proporcionado a las barras de título de la ventana de herramientas el mismo menú contextual que a sus pestañas acopladas.
  • Se han realizado mejoras visuales en las ventanas Locales, Vigilancia y Modelo.
  • Se ha actualizado la depuración por viaje en el tiempo (TTD) a la versión 1.11.532. Para obtener más información, consulte Notas de lanzamiento de TTD.

1.2502.25002.0

Características nuevas

Ventana de comandos IntelliSense

El indicador de entrada del comando muestra automáticamente las sugerencias de finalización cuando el primer carácter escrito es . (punto), ! (exclamación) o $ (signo de dólar).

También se pueden invocar sugerencias con el método abreviado de comandos Ctrl+Barra espaciadora.

Depuración de instantáneas

Cuando WinDbg depura procesos activos localmente, también puede tomar instantáneas del proceso. Para cambiar entre instantáneas y el proceso activo, use los iconos de la pestaña Extensiones .

Del mismo modo, WinDbg puede conectarse a una instantánea de un proceso sin suspenderlo mediante una snapshot:pid=<process pid in hex>cadena de protocolo en Connect to remote debugger.

Nuevas API de modelo de datos

  • Debugger.Utility.Symbols.GetTypeInformation

    Devuelve la información de tipo asociada a cualquier objeto pasado. Un argumento opcional permite la desreferenciación automática (un nivel) de punteros si se desea conocer el tipo subyacente a cualquier puntero (o referencia).

  • Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)

    Crea un nuevo filtro de pasos ubicado en el espacio de nombres junto a todas las API de creación de puntos de interrupción.

  • Debugger.State.StepFilters

    Devuelve la lista de filtros de paso que tienen las propiedades Id, , DescriptionType, Patterny IsEnabled. Hay un método .Remove() en los objetos de filtro por pasos.

Experiencia de depuración CLR mejorada sin clrcomposition.dll

El componente redistribuible dbgeng.dll mejora la compatibilidad con el recorrido de la pila para los marcos del tiempo de ejecución de lenguaje común (CLR) sin necesidad de que clrcomposition.dll esté presente.

Mejoras aleatorias

  • Se ha mejorado la compatibilidad con la depuración del núcleo de Linux (especialmente para núcleos 6.11 y posteriores).
  • Se ha agregado compatibilidad con páginas KDUMP con compresión ZSTD.

Correcciones de errores

  • Se ha actualizado el sistema operativo del servidor (SOS) a la versión 9.0.557512.
  • Se ha corregido una regresión de rendimiento al verificar las firmas revocadas al cargar msdia140.dll.
  • Corregido un fallo al leer el contexto XSTATE.
  • Se ha corregido el resaltado de los puntos de interrupción deshabilitados en la ventana de Desensamblado para diferenciarlos de los puntos de interrupción habilitados.
  • Se ha corregido un error que provocaba un bloqueo al cerrar una ventana de herramientas flotante.
  • Se ha corregido un problema por el que la posición actual de la ventana Timelines no siempre se rellenaba tras abrir un seguimiento reciente.
  • Se ha corregido un problema en las ventanas Desensamblar y memoria , que no siempre se actualizaban después de escribir un nuevo valor.
  • Se ha corregido la combinación de colores de la barra de título en el tema oscuro.
  • Se ha corregido la presentación de puntos de interrupción diferidos en la ventana Puntos de interrupción donde Ubicación mostraba 0x0 en lugar de la expresión original especificada cuando se creó. También tiene un icono distintivo, que indica que no está vinculado.
  • Se ha corregido un problema en las ventanas de Variables locales y Inspección donde al hacer clic derecho en un elemento visible, la vista se desplazaba hacia arriba.
  • Se han corregido problemas con natvis. Para obtener más información, consulte el informe de errores original.
  • Se ha corregido el exceso de mensajes del depurador kd con el mensaje Error getting port connector information. Para obtener más información, consulte el informe de errores original.
  • Se ha corregido un problema con gc que desencadenaba puntos de interrupción condicionales cuando la condición era falsa.
  • Se ha corregido un problema para que ahora se puedan ver los registros YMM y ZMM al depurar un rastreo TTD.

Correcciones de accesibilidad

  • Se ha mejorado la navegación mediante el teclado en las ventanas Locales, Vigilancia y Puntos de interrupción.
  • Se ha mejorado la legibilidad visual de la cinta y de las ventanas Locales, Vigilancia y Puntos de interrupción.
  • Se ha mejorado la facilidad de uso del lector de pantalla de las ventanas Locales, Observación y Puntos de ruptura.
  • Se ha conservado, siempre que ha sido posible, el foco del teclado, la selección y el desplazamiento anteriores al editar elementos en las ventanas Locales, Vigilancia y Puntos de interrupción.
  • Se ha mejorado la compatibilidad general con el escalado de texto de Windows.

Mejoras generales de la interfaz de usuario

  • Se ha añadido un comando para mover el foco desde un cuadro de texto de entrada de comandos a un panel de salida de comandos, como en el modo Toggle Mark (similar a un símbolo del sistema). El atajo de teclado es Ctrl+M.
  • Se ha añadido la opción de menú contextual Ir al desensamblado a la ventana Puntos de interrupción.
  • Se ha añadido un menú contextual a la ventana Desensamblado para los estados Ejecutar hasta la instrucción, Establecer puntero de instrucción, Ir al código fuente, Activar/desactivar punto de interrupción y Activar/desactivar punto de interrupción.

Depuración de viaje en el tiempo

1.2410.11001.0

Cambio disruptivo

Ahora dbghelp.dll se vincula dinámicamente con msdia140.dll. Este cambio solo debe afectar a las herramientas que redistribuyen dbghelp.dll sin incluir también msdia140.dll. Los paquetes NuGet que incluyen dbghelp.dll también incluyen msdia140.dll.

Correcciones de errores

  • Se ha corregido un problema por el que los alias de funciones de la galería de extensiones no se vinculaban a los desencadenantes de carga.
  • Se ha corregido un problema por el que el almacén de símbolos deja de funcionar cuando se recibe un ERROR_INTERNET_SECURITY_CHANNEL error.
  • Se ha corregido un problema por el que no se podía escribir una barra diagonal inversa en la ventana Comandos para diseños de teclado que no son en inglés.
  • Se ha corregido un problema por el que el cuadro de texto de edición de las ventanas Locales, Vigilancia y Puntos de interrupción no se desplazaba hasta el cursor cuando el texto era más largo que la columna en la que se encontraba.
  • Se ha dado prioridad a *.dmp (un solo punto) sobre *.*.dmp (dos puntos) para volcados CAB o ZIP.

Correcciones de accesibilidad

  • Se ha corregido el cambio de tamaño de las columnas mediante el teclado en las ventanas Locales y Vigilancia.
  • Se ha mejorado la navegación por el teclado en WinDbgX.

1.2409.17001.0

Correcciones de accesibilidad

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

Correcciones de errores

  • Se ha corregido un problema por el que la desinstalación de WinDbgX impide la apertura de WinDbg (clásico).
  • Se ha corregido un problema por el que WinDbgX cambiaba el tamaño después de que apareciera durante la apertura.

Depuración de viaje en el tiempo

1.2407.24003.0

Características nuevas

Nuevo proveedor de scripts de JavaScript

Ahora estamos enviando un nuevo proveedor de JavaScript compatible con versiones anteriores basado en V8. Como resultado, los hosts arm64 ahora pueden usar extensiones de JavaScript. La interfaz de usuario arm64 también ahora tiene como valor predeterminado el motor ARM64.

El nuevo proveedor está habilitado de forma predeterminada en todas las arquitecturas. En x86 y x64, se puede activar o desactivar mediante los comandos .veighton y .veightoff. En el futuro, tenemos previsto quitar estos comandos y el proveedor de JavaScript heredado.

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 seleccionar estos iconos, se desencadena una visualización de una consulta de modelo de datos específica. La extensibilidad se logra agregando 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. Para obtener documentación, consulte 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. Para obtener más información, consulta la documentación del manifiesto de la galería de extensiones.

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 Symbols sección del archivo de configuración de 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:

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

Para facilitar la depuración de problemas relacionados con la descarga de fuentes basadas en SourceLink integrado, ahora puedes utilizar el comando !lmsourcesinfo module para mostrar el contenido de SourceLink que utiliza el depurador.

Mejoras generales de la interfaz de usuario

Se han realizado pequeñas mejoras en ventanas como las ventanas de Módulos y las ventanas de Pila:

  • La columna de encabezado se usa para ordenar las vistas de cuadrícula.
  • Hay más acciones de clic derecho disponibles.
  • La ventana Pila muestra los marcos como inline cuando procede.

Correcciones de errores

  • Se ha corregido un problema por el que los archivos PDB de más de 4 GB no se descargarían a través de HTTP. Edge es un ejemplo de este PDB.
  • Se ha corregido un problema de almacenamiento en caché en el proveedor de credenciales del depurador. (Ahora almacena 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.
  • Se ha corregido !heap -a -a para que funcione ahora.

TTD

Consulte las notas de versión de TTD para la v1.11.410.

1.2402.24001.0

Características nuevas

Depuración en vivo de Linux

Ahora puede depurar un proceso de Linux en tiempo real. Para obtener más información, consulte estos artículos:

Para el futuro previsible, el cliente winDbg requiere Windows porque 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 TTD en los módulos que le interesan. Esta funcionalidad puede reducir la sobrecarga de grabación. Para usarlo, en el cuadro de diálogo Configurar y grabar , seleccione Grabar subconjunto de ejecución. A continuación, especifique los módulos que desea registrar. (Para obtener más información, vea Problemas conocidos).

Para un control más preciso, puede grabar con precisión el programa mediante una nueva API de grabación en proceso. Para obtener información sobre cómo grabar el programa, consulte nuestra documentación y código de ejemplo.

Ventana de registro compacta

La nueva ventana de registro es similar a la salida del r comando . Todavía 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). 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 Range se toma de la memoria física en lugar de la memoria virtual.
/p[c] Igual que /p, excepto que se lee la memoria almacenada en caché. Los corchetes que rodean c deben incluirse.
/p[uc] Igual que /p, excepto que se lee la memoria sin almacenar en caché. Los corchetes que rodean uc deben incluirse.
/p[wc] Igual que /p, salvo que se lee la memoria combinada de escritura. Los corchetes que rodean wc deben incluirse.

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

Correcciones de errores

  • Se ha añadido compatibilidad con la desambiguación de nombres de Rust en la depuración en Linux.
  • Se han realizado mejoras en la depuración de CLR:
    • Se ha añadido la capacidad de forzar el recorrido de la pila en modo mixto de los marcos CLR.
      • Se ha añadido la configuración 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.
  • Se han realizado mejoras generales en la depuración de CLR en Linux.
  • Se han corregido varios problemas con respecto a las variables por CPU y LinuxKernel.js.
    • Se ha añadido el comando !runq a LinuxKernel.js para poder volcar las colas de ejecución del programador del núcleo por CPU (de forma similar al comando runq de la utilidad crash de Linux).
    • Se han corregido varios comandos en LinuxKernel.js para que se correspondan con los cambios del kernel. En los kernels más recientes, el árbol del temporizador utiliza nodos RB almacenados en caché en lugar de nodos RB sin procesar. En los núcleos más recientes, la lista all_bdevs ha desaparecido, por lo que ahora los dispositivos de bloque se recorren a partir del superbloque (blockdev_superblock).
  • Se han realizado varias natvis correcciones para funcionar de manera más similar a las versiones recientes de Visual Studio.
  • Se ha dado preferencia a sourcelink frente al antiguo sourceinfo.
    • Se ha añadido el comando !lmsourcesinfo <module> para mostrar flujos sourcelink desde los PDB (para facilitar la depuración de 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

Se han realizado muchas correcciones de errores y pequeñas mejoras.

1.2306.12001.0

Se han realizado muchas correcciones de errores y pequeñas mejoras.

1.2303.30001.0

Nota

El depurador ha cambiado el nombre de WinDbg Preview a WinDbg.

El depurador heredado publicado con herramientas de depuración para Windows ahora se conoce como WinDbg (clásico).

Depuración de viaje en el tiempo en ARM64

WinDbg se ejecuta de forma nativa en ARM64 y también hemos habilitado TTD de procesos nativos de ARM64. 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.

Se mejoró el rendimiento general de TTD, reduciéndose considerablemente la carga computacional para los procesos que usan instrucciones SIMD comunes. En total, se han optimizado 65 nuevas instrucciones, que van desde MMX hasta SSE 4.2, AVX y AVX2.

Resolución ambigua del punto 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, 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, conocidas como regex. Para habilitar regex en la ventana en la que desea buscar, seleccione Ctrl+F. 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 que WinDbg Preview puede iniciar, restringiéndolas únicamente a sesiones de depuración remotas y archivos de volcado. Para obtener más información, vea 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 desambigua las variables que comparten el mismo nombre anexando @n al nombre de la variable. Algunos ejemplos son foo@0 y foo@1

Este cambio también se refleja en la ventana Variables locales . Anteriormente, solo aparecí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 Comandos . Para detectar patrones, seleccione un texto y todas las demás instancias de ese texto serán resaltadas. Este resaltado es útil cuando se examinan los patrones de memoria. Ahora, también resalta números equivalentes en otros radixes, 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 **Comando** de WinDbg con varios formatos de número resaltados.

Esta característica también funciona con resaltados semitemporales. Seleccione Ctrl y haga 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, seleccione Ctrl y haga doble clic en el número de nuevo). Por último, esta característica también funciona al buscar números seleccionando Ctrl+F.

Acceso extendido al código fuente

El comando de ruta de acceso de origen .srcpath, .lsrcpath (Establecer ruta de acceso de origen) se actualizó para incluir la nueva etiqueta DebugInfoD. Para obtener más información, consulte Acceso extendido al 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, ahora puede acceder a los estados de anfitrión y huésped 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

El JavaScript cargado en la interfaz de usuario utiliza ahora el comando .scriptdebug para la depuración directa dentro de la consola. Para obtener más información, consulte Scripting del depurador de JavaScript: Depuración de JavaScript.

Mejoras de accesibilidad

Con WinDbg Preview, nos comprometemos a crear un depurador que sea inclusivo para ingenieros con discapacidades. Hemos realizado las siguientes mejoras de accesibilidad:

  • Se pueden hacer clic en los vínculos de la ventana Comando mediante el teclado (seleccione Mayús+Entrar).
  • Navegación con teclado mejorada del menú principal.
  • Se ha mejorado la navegación por teclado en la cinta de opciones.
  • Mayor contraste en los elementos de la interfaz de usuario.

Nuevo tipo de acceso a datos Overwrite para la depuración con Time Travel

La depuración con Time Travel ofrece ahora un tipo de acceso a datos Overwrite. Las consultas de memoria como dx $@cursession.TTD.Memory() ahora tienen otra columna que muestra los valores antiguos de las escrituras.

Otras correcciones, mejoras y actualizaciones

  • Se ha añadido una función para detectar automáticamente y aplicar una solución provisional a un problema de hardware USB 3.1 cuando tanto el host de depuración del núcleo como el destino son controladores USB 3.1.
  • Se ha añadido un nuevo atajo de teclado en la interfaz de usuario: Ctrl+Mayús + selección sobre un enlace DML lo copia al portapapeles.

1.0.2007.01003

Marcadores de línea de tiempo

Marque posiciones importantes de viaje en el tiempo en WinDbg en lugar de copiar y pegar manualmente la posición en Notepad. Los marcadores facilitan la visualización a simple vista de diferentes posiciones en el seguimiento en relación con otros eventos y anotarlos.

Puede dar un nombre descriptivo a los marcadores.

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

Acceda a los marcadores a través de la ventana Línea de Tiempo disponible en Ver>Línea de Tiempo. Al mantener el puntero sobre un marcador, aparece el nombre del marcador.

Captura de pantalla de la línea de tiempo de WinDbg con tres marcadores y un tooltip 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 al hacer clic derecho sobre un marcador con opciones para ir a la posición, editar y eliminar.

Ventana módulos

Una nueva ventana muestra los módulos y su información relacionada que está disponible a través de la cinta Vista. La ventana Módulos muestra:

  • Nombre del módulo, incluida la ubicación de la ruta de acceso.
  • Tamaño en bytes del módulo cargado.
  • Dirección base donde se carga el módulo.
  • La versión del archivo.

Captura de pantalla de la ventana Módulos winDbg que muestra cinco módulos enumerados.

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

Los nombres de subprocesos configurados desde SetThreadDescription ahora están disponibles al realizar la depuración en modo usuario en tiempo real. 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 describe una codificación de la información de depuración generada por compiladores de lenguajes de la CLI y consumidas por depuradores y otras herramientas. Para obtener más información, consulte Símbolos PDB portátiles.

Otros cambios y correcciones de errores

  • Se ha proporcionado compatibilidad con la depuración de volcados del núcleo AMD64 y Linux para WinDbg.
  • Se han realizado mejoras en la grabación de Time Travel y otras correcciones.

1.0.1912.11001

  • Escalas de tiempo de TTD: una nueva ventana 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 abren y muestran automáticamente las excepciones (si están presentes) y los puntos de interrupción. Para obtener más información, vea WinDbg Preview: Timeline.
  • Modificado al cromo de ventana predeterminado: el cromo de ventana personalizado que usamos provocó algunos problemas de escalado y cambio de tamaño, por lo que lo quitamos por ahora.
  • Navegación de teclado mejorada del menú Archivo: el menú archivo es más fácil de navegar con solo un teclado.

Otros cambios y correcciones de errores

  • Deshabilitó las ventanas Stack y Locals cuando el destino se está ejecutando para que no muestre "Error no especificado" cuando no haya ningún destino.
  • Se ha agregado una columna Servicios al cuadro de diálogo Adjuntar para ayudarle a encontrar fácilmente qué servicios se están ejecutando.
  • Se ha corregido un error que provocaba que la detección de arquitectura no funcionara cuando las aplicaciones se abren con argumentos.
  • Se ha mejorado el desensamblado de la ventana Desensamblado cuando se cargan símbolos privados.
  • Se quitó el botón Cargar JSProvider de la cinta de scripting porque ahora jsprovider.dll se carga automáticamente.

1.0.1908.30002

  • Mejoras en los objetos de llamadas TTD: las consultas de llamadas ahora incluyen nombres de parámetros, tipos y valores. Al consultar las llamadas a funciones en las trazas, se pueden obtener los parámetros con tipado completo y sus valores. Esta funcionalidad facilita el filtrado de los resultados por parámetros.
  • Compatibilidad con Open Enclave: La versión preliminar de WinDbg ahora puede depurar aplicaciones open enclave. Para obtener más información, consulte Open Enclave debugging.
  • Volcados de memoria ELF: Como parte de la compatibilidad con Open Enclave, WinDbg puede abrir volcados de memoria ELF y archivos binarios, así como símbolos DWARF (actualmente no es compatible con DWARF 5) tanto de enclaves como de aplicaciones de Linux. Al abrir un volcado de memoria de una aplicación que no sea de Windows, las ventanas y los comandos básicos deberían funcionar correctamente, pero la mayoría de las extensiones y los comandos específicos de Windows no funcionan. Los archivos ELF y DWARF se descargan de servidores de símbolos siguiendo las convenciones clave definidas en convenciones clave SSQP. Los enclaves son el único escenario compatible, pero agradecemos cualquier comentario sobre la apertura de otros volcados de memoria de Linux.
  • Cambio en el formato de archivo TTD: Una actualización importante del formato de archivo para las trazas TTD rompe la compatibilidad con versiones posteriores. Las versiones anteriores de WinDbg Preview no pueden abrir trazas registradas con esta versión y futuras versiones de WinDbg Preview. Esta versión y las versiones futuras podrán abrir trazas nuevas y antiguas.

Otros cambios

  • TTD utiliza ahora el motor de 64 bits para la indexación y el número de bits adecuado del motor del depurador para las reproducciones. Posibles problemas de memoria durante la indexación y problemas de SOS durante la reproducción se minimizan.
  • La ejecución dx sin parámetros ahora muestra el espacio de nombres raíz para facilitar la exploración.
  • El menú Configuración ahora tiene opciones para modificar el símbolo predeterminado y la ubicación de caché de origen.
  • Se ha mejorado la compatibilidad con la grabación de AVX-512 (la grabación de AVX-512 provoca una ralentización mayor que normal).
  • Las licencias sin conexión están habilitadas.

1.0.1905.12001

  • Mejoras en la mitigación de errores SymSetDiaSession: la corrección para mitigar el error causado por las aplicaciones que insertan DbgHelp en nuestro proceso no funcionaban en algunos escenarios. Hemos realizado mejoras en él y seguimos supervisando los comentarios sobre este error.

  • Personalización del color de énfasis: a menudo, los escenarios necesitan varias instancias de WinDbg abiertas. Moverse hacia atrás y hacia delante entre ellos puede ser confuso y tardar algún tiempo en averiguar cuál es el "derecho". Hemos agregado la capacidad de cambiar el color de énfasis azul para ayudar a distinguir visualmente las sesiones y facilitar el intercambio entre ellas.

    Seleccione la cinta Ver y seleccione una opción de color de énfasis en la última sección. Cuando se abran sesiones futuras desde objetivos recientes, el color de resaltado persiste como parte del espacio de trabajo del objetivo.

  • Mejoras en la tokenización de Source: la ventana Source ahora ofrece compatibilidad básica para tokenizar archivos de fuente de Rust y C++ SEH __try/__except/__finally/__leave.

  • Mejoras en las corrutinas: Hemos mejorado la compatibilidad con las variables locales de las corrutinas y con determinadas variables optimizadas.

  • Configuración predeterminada de símbolos y ubicación de caché de origen: agregamos una opción al menú Configuración en Configuración de depuración para cambiar la ubicación de la caché de los símbolos. Hay un problema conocido por la que dejar esta configuración en blanco provoca que falle la carga del origen. Tenemos previsto agregar validación para evitar que este problema se produzca en una versión futura.

  • Correcciones de -pv: Hemos corregido un error que podía impedir que -pv (conexión no invasiva) funcionara en algunas circunstancias.

1.0.1904.18001

  • Corrección del error SymSetDiaSession: teníamos informes de un error que impide que WinDbg Preview se abra en algunas situaciones. Algunas aplicaciones externas 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 este problema y planeamos realizar un seguimiento para determinar si hay escenarios en los que todavía se produce.
  • Control de fuentes: se ha agregado la configuración para controlar la fuente y el tamaño de fuente. Hay dos configuraciones diferentes: una es para las ventanas de texto (ventanas con espacio mono, como Desensamblado, Origen y Comando), y una es para las ventanas de herramientas (como Variables locales y Pila). Estas opciones no afectan a algunas áreas. Tenemos previsto actualizarlos en el futuro.
  • Mejoras de resaltado: el resaltado persistente de texto en la ventana Comando ahora también resalta el texto en las ventanas Origen y Notas .
  • Mejoras en la carga de código fuente: hemos cambiado el funcionamiento de la carga de archivos de origen. Anteriormente, al abrir un archivo de código fuente, las operaciones del motor como ejecutar más comandos no eran posibles o eran impredecibles. Hemos cambiado el lugar donde 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 añadido Ir a desensamblado al menú contextual de la ventana Fuente.
  • Se agregó una casilla Seguir la instrucción actual en la ventana de Desensamblado.
  • Se ha corregido un error que provocaba que la ventana Comando se realizara lentamente cuando genera grandes cantidades de texto.
  • Se modificaron las funciones de las teclas Página arriba y Página abajo para que actúen de manera similar a Visual Studio.
  • Se realizaron cambios para que cuando se abra un archivo ASM en la ventana Origen, se resalten los comentarios, cadenas y directivas básicas.

1.0.1812.12001

Esta versión incluye las siguientes actualizaciones:

  • Encabezado C++ del modelo de datos del depurador: hay un nuevo encabezado de C++, DbgModel.h incluido como parte del Windows SDK para extender el modelo de datos del depurador mediante C++. Para obtener más información, consulte Información general sobre el modelo de datos del depurador de C++. Esta versión incluye una nueva extensión que agrega más características de estilo API al modelo de datos del depurador al que se puede acceder a través del dx comando, JavaScript y el nuevo DbgModel.h encabezado. Esta extensión amplía el modelo de datos para incluir conocimientos sobre el ensamblado y la ejecución de 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. 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 dx comando , 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 administra de forma más inteligente la visualización en primer plano de las ventanas Fuente o de la ventana Desensamblado durante el paso a paso.
  • Se ha reorganizado el título de la ventana de WinDbg Preview para que la información más importante aparezca al principio durante la depuración del núcleo.
  • El contraste de fondo alternado en la ventana Comando debe ser ligeramente más notable.

1.0.1810.2001

Esta versión incluye estas actualizaciones:

  • Se ha agregado un nuevo cuadro de diálogo Configuración al que puede acceder desde el menú Archivo o la cinta inicio .
  • Se ha agregado un cuadro de diálogo de configuración de eventos y excepciones. En este menú se cambia el modo en que el depurador controla los eventos y las excepciones, el equivalente de los sx comandos o el cuadro de diálogo de filtros de eventos de WinDbg. En la cinta Inicio , seleccione Configuración. A continuación, en el menú de la izquierda, seleccione Eventos y excepciones para administrar eventos y excepciones.
  • Se ha mejorado el indizador TTD con un mejor rendimiento. Esta mejora aumenta el rendimiento de los archivos de seguimiento TTD de indexación, lo que hace que el proceso de indexación sea más rápido (entre 2 veces y 10 veces) al tiempo que hace que los archivos de índice sean más pequeños (~50% más pequeños). Las mejoras de rendimiento son más notables para las trazas de más de 4 GB o cuando se utiliza una máquina con muchos núcleos de CPU (8+). El nuevo indexador hace que sea más factible depurar rastros grandes (50 GB+).
  • Se ha agregado una nueva debugArch marca de inicio 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 se puede determinar el número de bits correcto, o en las que quizá quieras anular lo que decide. Utilice -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.
  • Ahora se conserva el historial de comandos al abrir desde destinos recientes.
  • Se admite la edición en la ventana del modelo de datos donde ahora puede editar valores.
  • Se han aclarado los trazos TTD, ya que no están indexados.
  • Se ha mejorado el rendimiento de la ventana Variables locales .
  • Se ha agregado un botón de cinta para guardar los registros de la ventana de Comandos en un archivo.
  • Se ha agregado . SelectMany(\<projection\>) al conjunto predeterminado de métodos LINQ.

1.0.1807.11002

Esta versión incluye las siguientes actualizaciones:

  • Guardado y carga automáticos de puntos de interrupción: Este paso es el primero para sustituir los área de trabajo. Ahora puede guardar y cargar puntos de interrupción. Al iniciar algo que haya depurado anteriormente en la pestaña Recientes del menú Archivo, ahora se cargan los puntos de interrupción de 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 diversas propiedades relacionadas con los puntos de interrupción, como contextos y condiciones específicos de procesos y subprocesos, no se guardan actualmente.

Cambios menores y correcciones de errores

  • Se agregaron opciones -xde línea de comandos , -xe, -xd, -xn, y -xi para controlar el control de excepciones y eventos. Estas opciones de línea de comandos se comportan como sus homólogos de comandos.
  • Se ha agregado compatibilidad en la ventana Notas para formato en negrita, subrayado y cursiva.
  • Se han corregido algunos problemas de zoom y desplazamiento.
  • Se ha agregado compatibilidad para que la selección de texto en las ventanas Comando, Memoria, Origen o Desensamblaje ahora resalte otras instancias del texto seleccionado.
  • Se ha corregido un error en 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.
  • Se ha corregido un error para que NatVis se vuelva a cargar correctamente cuando se reinicie una sesión.

1.0.1805.17002

Esta versión incluye las siguientes actualizaciones:

  • Nueva ventana de desensamblaje: La ventana ahora incluye:

    • Al desplazarse hacia arriba o hacia abajo, ahora se carga continuamente más desensamblado siempre que sea posible.
    • El resaltado se usa para identificar la sintaxis de números, direcciones de código y códigos de operación.
    • Al seleccionar un símbolo de código, la ventana Desensamblado se mueve a esa ubicación.
    • Al pasar el cursor por encima de los números, aparece una información sobre herramientas que convierte ese número a otras bases.
    • El uso de encabezados indica el inicio de una función.
  • Ventana De origen más rápida: la ventana Origen se actualizó 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 opción Alternar punto de interrupción inicial no se podía utilizar cuando el objetivo no estaba roto.
  • Se ha agregado compatibilidad para que si selecciona una pestaña en la ventana Comando sin nada disponible, el cursor ahora permanece en el campo de entrada.
  • Se ha añadido compatibilidad para que WinDbg Preview detecte automáticamente el número de bits al abrir archivos CAB.

1.0.1804.18003

Esta versión incluye las siguientes actualizaciones:

  • Mejoras en el estado de los símbolos y la cancelación: Hay ocasiones en las que el depurador muestra BUSY al cargar símbolos, y resulta difícil determinar qué está haciendo y por qué sin tener activado el modo !sym noisy. Se ha 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 problemas.

    Además de los cambios que le permiten ver lo que sucede, también hemos realizado algunos cambios que hacen que los símbolos de cancelación sean más confiables. La ventana Registros contiene algunos de los detalles que normalmente se generan cuando se habilita el modo ruidoso. Si seleccionas Ver>Registros, obtienes la salida completa de la carga de símbolos en modo noisy sin tener que activarlo ni intentar recargar los símbolos.

  • Ventana Notas experimentales: WinDbg Preview ahora tiene una ventana para tomar notas. Seleccione Ver>Notas para abrirlo. Si copia o pega en él, los vínculos DML se conservan y siguen funcionando como si fuera la ventana Comando . También puede guardar y cargar archivos de notas desde la cinta notas cuando la ventana está abierta.

  • Ventana Fuente experimental más rápida: Para ayudar a mejorar el rendimiento de WinDbg Preview, se ha introducido una nueva ventana experimental Fuente más eficiente. Existen 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 terminarlo para enviarnos comentarios anticipados. Ejecute $UseFastSourceWindow para usarlo. Si desea volver al anterior, ejecute $UseMonacoSourceWindow. La configuración se conserva entre sesiones. Debe cerrar y volver a abrir las ventanas "Source" para obtener la nueva versión.

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

    • Cualquier objeto con un .compareTo método que salga del script tiene un comparador personalizado en él. (Los operadores de comparación funcionan en el evaluador DX y en otros lugares. Un ejemplo es IModelObject::Compare.
    • Cualquier objeto con un .equals método que salga del script tiene un operador de igualdad personalizado en él. (Los operadores == y != funcionan en el evaluador DX y en otras partes. Un ejemplo es IModelObject::IsEqualTo.)
    • Los objetos de modelos de datos o nativos que entran al script tienen .compareTo y .equals en ellos, lo que permite el acceso a cualquier implementación de comparador personalizada o de igualdad personalizada.

Cambios menores y correcciones de errores

  • Se ha agregado compatibilidad para que .server ahora muestre un nombre de dominio completo para facilitar el uso cuando hay problemas de dominio en torno a nombres cortos.
  • Se ha agregado compatibilidad para que Ctrl+G funcione ahora en la ventana Origen .
  • Se agregó una barra de direcciones a la ventana Desensamblado .
  • Se ha agregado compatibilidad para que WinDbg Preview ahora controle _NT_SYMBOL_PATH de forma más esperada.
  • Se agregó la opción de -server línea de comandos.
  • Se ha agregado compatibilidad para que las consultas del modelo de datos TTD se muestren progresivamente. Si lo interrumpe, aún puede ver algunos resultados. Esta característica es experimental y opcional. Ejecute dx $@cursession.TTD.AsyncQueryEnabled = 1 para habilitarla.
  • Se ha agregado compatibilidad para que el dps comando ahora tenga vínculos a los archivos de origen a los que hace referencia.

1.1801.19001.0

Esta versión incluye las siguientes actualizaciones:

  • Resaltado de texto: ahora puede resaltar todas las apariciones del texto seleccionado directamente en el depurador. Para usar esta característica, seleccione texto en la ventana Comando y, a continuación, seleccione Resaltar en la cinta de opciones Comando . También puede seleccionar Ctrl+Alt+H. Si usa una de esas opciones en texto ya resaltado, se quita el resaltado.

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

$hl ["someValueHere"]: el resaltado proporciona texto (o resaltado claro si ya está resaltado). $hl clearAll: borra todas las entradas resaltadas. $hl caseSensitive [1|0]: Configura la coincidencia de resaltado para que distinga entre mayúsculas y minúsculas o no. (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 las siguientes actualizaciones:

  • Consultas de memoria TTD: ahora puede consultar TTD para obtener accesos a memoria de forma similar a cómo se consultan las llamadas en la actualidad. Ahora puede encontrar todas las lecturas, escrituras y ejecuciones que tienen acceso 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")
  • Cambios de configuración: WinDbg Preview ahora guarda automáticamente la configuración entre sesiones, incluida la ruta de símbolos y la ruta del código fuente.

Mejoras de JavaScript

  • Los números y valores numéricos de 64 bits de 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 equitativa personalizada. Funciona en dx usando operadores estándar de C++ o en operaciones LINQ. Para usar esta funcionalidad, el script debe declarar en la initializeScript matriz que admite una nueva versión de la API de host insertando un registro new host.apiVersionSupport(1, 2). A continuación, puedes utilizar estas funciones en cualquier consulta LINQ de la ventana dx o de la ventana del modelo de datos. 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, .this < other Si el método devuelve cero, .this == other Si el método devuelve un valor positivo, .this > other Si el método implementa .equals(other), es equitativo (== 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 Stack y Locals no funcionaban durante la depuración de arranque.
  • Se ha actualizado la salida de LM para informar con mayor precisión sobre ProductVersion y campos similares.
  • Se ha habilitado el botón Retroceder un paso durante las sesiones de TTD.
  • Se ha agregado compatibilidad con -lsrcpath.
  • Se han corregido los encabezados de las ventanas Locales, Vigilancia y Modelo para que no desaparezcan al desplazarse hacia abajo.
  • Se ha agregado compatibilidad para que cuando use Alt+Tab para volver a WinDbg Preview, la ventana Comando conserva correctamente la ubicación del cursor.
  • Se ha agregado el acceso directo Ctrl+Alt+V para alternar el modo detallado.
  • Se ha agregado compatibilidad para que ahora pueda deshabilitar el desplazamiento automático de la ventana Comando seleccionando y manteniendo presionada (o haciendo clic con el botón derecho) la pestaña Comando y seleccionando Desactivar el desplazamiento automático.
  • Se ha añadido compatibilidad para que ahora puedas depurar procesos secundarios a través de la página avanzada del ejecutable de inicio.

1.0.14.0

Esta versión incluye las siguientes actualizaciones:

  • Experiencia mejorada del servidor de procesos: una nueva notificación en el menú Archivo muestra con qué servidor de procesos está conectado e interactuando. Como parte de estos cambios, cuando finaliza una sesión de depuración, la conexión del servidor de procesos persiste y se puede desconectarse desde el menú Archivo.
  • Nuevas opciones de diseño predefinidas en la cinta Ver: Hay disponible una nueva opción Diseños en la cinta Ver. Actualmente hay tres diseños: el valor predeterminado, uno centrado en el desensamblaje y un mínimo.
  • Cinta Depuración de Time Travel: Aparece una cinta Time Travel mejorada cuando se depura un rastreo TTD.
  • Metadatos de scripts de JavaScript: Las extensiones de JavaScript ahora pueden devolver metadatos para propiedades y otras construcciones. La extensión ahora puede proporcionar cadenas de ayuda, indicar la base de visualización de los valores y mucho más. 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. Los retornos de funciones, los valores iterados y otros contextos de valores pueden devolver metadatos para su valor a través de host.metadata.valueWithMetadata.
  • Actualizaciones de la API de JavaScript: se realizaron algunos cambios importantes potencialmente disruptivos para el nivel de origen en las API del proveedor de JavaScript (incluyendo 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 la API de JsProvider. La compatibilidad con la nueva versión de LA API se indica colocando un host.apiVersionSupport registro en la matriz devuelta por initializeScript con una notificación de compatibilidad con la versión 1.1.

Cambios en la versión 1.1 de la API

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

Más cambios de JavaScript

  • Las extensiones de JavaScript ahora pueden agregar y quitar propiedades en objetos del modelo de datos mediante 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 host.setModuleSymbol API.
  • Todas las funciones matemáticas que se encuentran en el tipo de biblioteca de 64 bits (por ejemplo, .add, .subtract, .multiplyy .divide) también 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. Una función o un accesor de propiedad puede devolver host.typeSystem.marshalAs(value, type…) para activar dicha marshalling personalizada.
  • 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 .containingModule propiedad .

Cambios menores y correcciones de errores

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

Problemas conocidos

SOS no funciona en trazas x86.

1.0.13.0

Esta versión agrega el rastreo de viajes en el tiempo. Con la depuración Time Travel, puedes grabar un proceso y reproducirlo más tarde tanto hacia adelante como hacia atrás. TTD puede ayudarle a depurar problemas más fácilmente 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, consulte Características principales de WinDbg.