Partager via


Notes de publication

WinDbg logo with a magnifying glass inspecting bits.Logo de WinDbg avec une loupe inspectant des octets.

Cet article fournit des informations sur les nouveautés de WinDbg. Les versions antérieures ont été publiées en tant que WinDbg Preview.

1.2511.21001.0

Nouvelles fonctionnalités

  • Sélection améliorée des fichiers avec gestion basée sur la priorité étendue aux fichiers et dossiers CAB pour améliorer le ciblage des fichiers de vidage
  • Téléchargements de fichiers de symboles ELF, DWARF et Mach-O améliorés avec des messages de journalisation et de statut optimisés.
  • La variable d'environnement DBGHELP_DIA_PATH prend désormais priorité sur les modules chargés actuellement pour un meilleur contrôle de la gestion des symboles.
  • Améliorations apportées à l’indexation des noms de membre pour améliorer la navigation des symboles et les performances de recherche

Résolution des bogues

  • Problème résolu où les écritures de mémoire dans les cibles Linux actives échouent
  • Correction du chargement et des fonctionnalités des extensions DAC et SOS lors de la connexion à des cibles de débogage en direct.
  • Problème résolu où les exécutables de processus attachés sont apparus comme « imageXXXXXXXXXX » au lieu de noms réels
  • Correction du code de téléchargement de NuGet.exe cassé, causée par l’implémentation de la mémoire cache négative.
  • Correction des retards d’interface utilisateur lors de l’utilisation d’exdigdbsrv
  • Exceptions WMI gérées par le vérificateur de compatibilité du contournement USB 3.1
  • Avertissements incorrects supprimés (C6518) des annotations SAL de wdbgexts.h
  • Affichage des informations de type fixes pour char16_t et char32_t types sur les plateformes Linux

Améliorations générales de l’interface utilisateur

  • Ajouter une nouvelle option de ruban simplifié, ce qui réduit l’empreinte verticale du ruban
  • Accélération matérielle graphique activée lors de l’exécution dans des sessions RDP (Remote Desktop Protocol)
  • Amélioration des performances d’actualisation dans la fenêtre Désassemblement
  • Correction de la mise à l’échelle des DPI pour les menus contextuels de fenêtre d’outil dans différentes configurations de moniteur
  • Sur la page À propos, les informations de version sont rendues sélectionnables pour faciliter la copie.
  • Suppression de la prise en charge de la technologie IDNA obsolète (noms de domaine internationalisés dans les applications)
  • Le journal du débogage a été nettoyé pour exclure certaines entrées de démarrage anticipées issues de la galerie d'extensions et d'autres opérations internes.

Débogage des déplacements temporels (TTD)

  • 1.11.553 -> 1.11.567

1.2510.7001.0

Améliorations apportées à l’interface utilisateur et à l’expérience

  • Ouvrir n’importe quelle instance de fenêtre mémoire à partir du ruban

Améliorations du débogage et des performances

  • Empêche le vol des rappels d’instrumentation de processus pour améliorer la fiabilité du débogage
  • Historique amélioré des variables du débogage temporel (TTD) avec une préférence pour un format tabulaire pour une meilleure visualisation des données.
  • Correction d’un blocage dans l’historique des variables lors de la réutilisation des générateurs en garantissant des captures de fonction appropriées
  • Évaluateur amélioré pour les points d’arrêt ambigus pour gérer des scénarios de débogage plus complexes
  • Correction de l’affichage des colonnes publisher vides pour les applications de magasin et les processus PLM

Mises à jour de l’API TTD &Replay

  • Commande mise à jour !tt pour fournir une aide succincte et indiquer la position actuelle lorsqu'on l'appelle sans arguments, au lieu de revenir au début du suivi.
  • Ajout de la disponibilité expérimentale du Kit de développement logiciel (SDK) de l’API Replay pour l’intégration externe
  • Méthodes de modèle de données d’historique des variables améliorées pour améliorer l’accès par programmation
  • Nous avons corrigé diverses optimisations des opérations de relecture TTD et des améliorations de la prise en charge des rappels.

Corrections de bogues et stabilité

  • Correction des rapports d’erreurs qui affichaient incorrectement « erreur : L’opération s’est terminée correctement »
  • Résolution des problèmes de traitement des URLs de l’hôte dans les commandes fasttfgitview
  • Message d'erreur amélioré concernant la résolution de symboles pour fournir des retours plus clairs
  • Correction des problèmes liés au chargement de fichiers PDB pour les assemblages .NET mappés plats sur Linux
  • Bogue de lecture de données non initialisées résolu dans les composants de débogage
  • Correction des problèmes liés à la recherche de fichiers dans la galerie d’extensions avec des noms courts

1.2508.27001.0

Nouvelles fonctionnalités

  • Ajout d’une option permettant de désactiver l’accélération matérielle graphique pour WinDbg.
  • Ajout d’une nouvelle .AlternateFunctions propriété sur <frame>.Attributes.SourceInformation.

Résolution des bogues

  • Correction d’un problème où la page Démarrer le débogage n’était pas actualisée après l’ouverture d’une boîte de dialogue.
  • Correction d’un problème lié aux éléments du menu à onglets qui se connectaient à des appareils non accessibles par l’automatisation de l’interface utilisateur.
  • Correction d’un problème où l’entrée de commande non validée a été perdue lorsque vous avez exploré l’historique des commandes.
  • Correction de la gestion des roues de la souris pour un défilement correctement lisse (souris avec des roues lisses et des pavés).
  • Correction d’un comportement d’étape récursif trompeur dans le débogage x86 32 bits lorsque les prologues de fonction appelés __SEH_prolog4.
  • Correction d’un bogue dans le .AllowNugetExeUpdate paramètre des galeries d’extensions NuGet.
  • Correction d’un bogue lors de la lecture des symboles DWARFv5 autour .debug_names des tables et des index de nom.
  • Correction du comportement d’étape pour les lignes sources avec plusieurs appels filtrés par étape.
  • Correction d’un incident provoqué par une chaîne de version non valide natvis .
  • Correction de la transmission de bloc d’environnement pour CreateProcessW le débogage à distance.
  • Correction des commandes !percpu et !allpercpu pour les pointeurs CPU alloués dynamiquement via alloc_percpu dans le noyau Linux.
  • Correction d’un problème lié aux numérotations du processeur dans les sessions de débogage du noyau Linux.
  • Correction des étiquettes de fonction de fenêtre désassemblement manquantes pour les cibles de symboles de base de données non programmante (PDB).
  • Correction de la gestion des réadressages d’espaces réservés dans les fichiers binaires ELF.
  • Correction d’un double free dans la gestion des symboles DWARF de DW_OP_fbreg.
  • Correction de la régression dans le code de collecte de décharge qui empêchait la collecte complète de la décharge de mémoire pour les processus émulés x64-sur-ARM64.

Améliorations générales de l’interface utilisateur

  • Améliorations apportées à la façon dont WinDbg restaure la position de la fenêtre lorsque vous modifiez des moniteurs de différentes résolutions. WinDbg enregistre également et restaure désormais les positions enfichables.
  • Implémentation du défilement horizontal à l’aide de la roulette de la souris pendant que vous maintenez la touche Maj enfoncée.
  • Mise à jour du sélecteur de dossiers Ouverts pour utiliser la boîte de dialogue moderne.

1.2506.12002.0

Nouvelles fonctionnalités

WinDbg est désormais fourni avec les débogueurs en mode console (cdb.exe / ntsd64.exe / kd.exe). Pour lever l’ambiguïté des binaires les uns des autres et ne pas interférer avec les copies existantes des outils, les fichiers binaires incluent le nom de l’architecture :

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

Autres fonctionnalités :

  • Le titre de la fenêtre outil de modèle de données peut être personnalisé via la $OpenDmoToolwindow commande et peut également être modifié via le menu contextuel de la barre de titre.
  • Nouveau paramètre de débogueur pour activer les téléchargements HTTP parallèles des fichiers de symboles. Cette option est activée par défaut.

Résolution des bogues

  • Correction de la façon dont le chemin cible est enregistré pour les fichiers de vidage ouverts via la ligne de commande (-z) afin de pouvoir l’ouvrir correctement à partir du menu Récents .
  • Correction d’un plantage dans la fenêtre Éditeur de script.
  • Correction de la façon dont WinDbg gère les terminaisons de ligne incohérentes dans les fichiers sources ouverts dans la fenêtre Source pour fournir une vue plus cohérente des fichiers sources.
  • Correction d’un problème où les informations d’identification n’étaient pas renouvelées pour les serveurs de symboles HTTP lorsque vous utilisez la nouvelle fonctionnalité de téléchargements parallèles.
  • Correction d’un problème où les propriétés des objets de modèle de données n’étaient pas énumérées correctement dans les extensions JavaScript.
  • Correction d’un problème où le texte de colonne a disparu lors de la réorganisation par glisser-déplacer.
  • Correction d’un problème où la définition du filtrage des événements via les options de ligne de commande n’était pas appliquée à la cible de débogage au démarrage.
  • Correction d’un problème où désamarrer une fenêtre d’outil entraînait parfois un contenu vide.
  • Correction d’un problème où les minidumps des processus émulés X64 sur les machines ARM64 ne pouvaient pas être débogués.
  • Correction d’un problème où les points d’arrêt ambigus ont bloqué le débogueur.
  • Correction d’un problème où GDBServer s’est écrasé lors de la sortie du processus lors du débogage d’un processus Linux en direct.
  • Correction de plusieurs problèmes liés au débogage d’extensions JavaScript (.scriptdebug), notamment une meilleure énumération des propriétés et la résolution d’un problème de blocage.

Améliorations générales de l’interface utilisateur

  • Aligné la fenêtre de suggestion de commande sur le curseur. Il affiche désormais uniquement les suggestions au lieu de tout ce qu'il y avait avant le curseur.
  • Fourniture de détails supplémentaires à la boîte de dialogue d'erreur de cible de débogage. Pour les échecs de vidage ouverts, indiquez un lien hypertexte vers un fichier TSG qui n’a pas pu s’ouvrir.
  • A donné aux barres de titre de la fenêtre outil le même menu contextuel que leur onglet ancré.
  • Améliorations visuelles apportées aux fenêtres Locals, Watch et Model .
  • Mise à jour du débogage des voyages temporels (TTD) vers la version 1.11.532. Pour plus d’informations, consultez les notes de publication TTD.

1.2502.25002.0

Nouvelles fonctionnalités

Fenêtre de commande IntelliSense

L’invite d’entrée de commande affiche automatiquement les achèvements suggérés lorsque le premier caractère typé est . (point), ! (bang) ou $ (signe dollar).

Les suggestions peuvent également être appelées avec le raccourci de commande Ctrl+Espace.

Débogage d’instantané

Lorsque WinDbg débogue des processus en direct localement, il peut également prendre des captures instantanées du processus. Pour basculer entre les instantanés et le processus en direct, utilisez les icônes sous l’onglet Extensions .

De même, WinDbg peut se connecter à un instantané d'un processus sans l'interrompre via une chaîne de protocole snapshot:pid=<process pid in hex> dans Connect to remote debugger.

Nouvelles API de modèle de données

  • Debugger.Utility.Symbols.GetTypeInformation

    Retourne les informations de type associées à n’importe quel objet passé. Un argument facultatif permet le déréférencement automatique (un niveau) de pointeurs si vous souhaitez obtenir le type en dessous de tout pointeur (ou référence).

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

    Crée un nouveau filtre de processus situé dans le même espace de noms que toutes les API de création de points d'arrêt.

  • Debugger.State.StepFilters

    Retourne la liste des filtres d’étape qui ont les propriétés Id, , DescriptionType, Pattern, et IsEnabled. Il existe une .Remove() méthode appliquée aux objets de filtre d’étape.

Amélioration de l'expérience de débogage avec le Common Language Runtime (CLR) sans clrcomposition.dll.

Le composant dbgeng.dll redistribuable améliore le parcours de pile pour les trames du Common Language Runtime (CLR) sans qu’il soit nécessaire que clrcomposition.dll soit présent.

Améliorations aléatoires

  • Prise en charge améliorée du débogage du noyau Linux (en particulier pour les noyaux 6.11+).
  • Ajout de la prise en charge des pages KDUMP compressées ZSTD.

Résolution des bogues

  • Mise à jour du système d’exploitation serveur (SOS) vers la version 9.0.557512.
  • Correction d’une régression de la performance lors de la vérification des signatures révoquées pendant le chargement de msdia140.dll.
  • Correction d'un crash lors de la lecture du contexte XSTATE.
  • Correction de la mise en surbrillance du point d’arrêt désactivé dans la fenêtre Désassembly pour le différencier d'un point d’arrêt activé.
  • Correction d’un incident lorsque vous fermez une fenêtre d’outil flottante.
  • Correction d’un problème où la position actuelle de la fenêtre Chronologies n’était pas toujours renseignée après l’ouverture d’une trace récente.
  • Correction d’un problème dans les fenêtres Désassemblement et mémoire , qui n’ont pas toujours été mises à jour après l’entrée d’une nouvelle valeur.
  • Correction du schéma de couleurs de la barre de titre dans le thème sombre.
  • Correction de la présentation des points d’arrêt différés dans la fenêtre Points d’arrêt où Location affichait 0x0 au lieu de l’expression d’origine entrée lors de sa création. Il a également une icône distincte, qui indique que ce n’est pas lié.
  • Correction d’un problème dans les fenêtres Locals et Espion où le fait de cliquer avec le bouton droit sur un élément visible entraînait le défilement de la vue.
  • Correction des problèmes avec natvis. Pour plus d’informations, consultez le rapport de bogue d’origine.
  • Correction kd du courrier indésirable du débogueur avec le message Error getting port connector information. Pour plus d’informations, consultez le rapport de bogue d’origine.
  • Correction d’un problème lié à gc l’activation de points d’arrêt conditionnels lorsque la condition était fausse.
  • Correction d’un problème afin que les registres YMM et ZMM puissent désormais être consultés lorsque vous déboguez une trace TTD.

Correctifs de l’accessibilité

  • Navigation au clavier améliorée pour les fenêtres Locals, Espion et Points d’arrêt .
  • Amélioration de la lisibilité visuelle du ruban et des fenêtres Locals, Espion et Points d’arrêt.
  • Amélioration de l'utilisabilité du lecteur d'écran dans les fenêtres Locals, Observateur, et Points d’arrêt.
  • Maintien du focus clavier précédent, sélection et défilement, lorsque cela est possible, pour modifier les éléments dans les fenêtres Locals, Espion et Points d’arrêt .
  • Prise en charge générale améliorée de la mise à l’échelle du texte Windows.

Améliorations générales de l’interface utilisateur

  • Ajout d'une commande pour déplacer le focus d'une zone de texte d'entrée de commande vers un volet de sortie de commande en mode Marque basculante (comme dans une invite de commandes). Le raccourci est Ctrl+M.
  • Ajout d’un élément de menu contextuel Aller à l'assemblage à la fenêtre Points d’arrêt.
  • Ajout d’un menu contextuel à la fenêtre Désassemblement pour exécuter à l’instruction, définir le pointeur d’instruction, accéder à la source, basculer le point d’arrêt et désactiver les états du point d’arrêt.

Débogage de voyage dans le temps

1.2410.11001.0

Modification avec rupture

Maintenant, dbghelp.dll se lie dynamiquement à msdia140.dll. Cette modification doit affecter uniquement les outils qui redistribuent dbghelp.dll sans inclure également msdia140.dll. Les packages NuGet qui incluent dbghelp.dll incluent également msdia140.dll.

Résolution des bogues

  • Correction d’un problème où les alias de fonction de la galerie d’extensions n’étaient pas liés aux déclencheurs de chargement.
  • Correction d’un problème où le magasin de symboles n'est plus inactif lorsque une erreur ERROR_INTERNET_SECURITY_CHANNEL est reçue.
  • Correction d’un problème où une barre oblique inverse ne pouvait pas être tapée dans la fenêtre Commande pour les dispositions de clavier autres que l’anglais.
  • Correction d’un problème où la zone de texte de modification dans les fenêtres Locals, Observateur et Points d'arrêt ne défilait pas jusqu’au curseur lorsque le texte était plus long que la colonne dans laquelle elle était hébergée.
  • Hiérarchisé *.dmp (période unique) sur *.*.dmp (périodes doubles) pour les vidages CAB ou ZIP.

Correctifs de l’accessibilité

  • Correction du redimensionnement des colonnes à l'aide du clavier pour les fenêtres Locals et Observation.
  • Navigation au clavier améliorée dans WinDbgX.

1.2409.17001.0

Correctifs de l’accessibilité

Correction de plusieurs problèmes lors de l’interaction avec WinDbg à l’aide d’un lecteur d’écran.

Résolution des bogues

  • Correction d’un problème où la désinstallation de WinDbgX empêche l’ouverture de WinDbg (classique).
  • Correction d’un problème lié au redimensionnement de WinDbgX après son apparition lors de l’ouverture.

Débogage de voyage dans le temps

1.2407.24003.0

Nouvelles fonctionnalités

Nouveau fournisseur de script JavaScript

Nous expédions maintenant un nouveau fournisseur JavaScript rétrocompatible basé sur V8. Par conséquent, les hôtes ARM64 peuvent désormais utiliser des extensions JavaScript. L'interface utilisateur ARM64 utilise maintenant par défaut le moteur ARM64.

Le nouveau fournisseur est activé par défaut sur toutes les architectures. Sur x86 et x64, il peut être activé ou désactivé via les commandes .veighton et .veightoff. À l’avenir, nous prévoyons de supprimer ces commandes et le fournisseur JavaScript hérité.

Les extensions de débogueur avec des manifestes de galerie d’extensions peuvent désormais ajouter des icônes à l’onglet Extensions du ruban WinDbg. La sélection de ces icônes déclenche une visualisation d’une requête de modèle de données spécifique. L’extensibilité est accomplie en ajoutant des vues au manifeste de la galerie d’extension. Une vue lie un couplage d’un nom et d’une icône à une requête de modèle de données et au type d’affichage. Pour plus d’informations, consultez la documentation du manifeste de la galerie d’extensions.

Une extension de galerie peut désormais être chargée de manière conditionnelle en fonction de valeurs de paramètres d’exception spécifiques. Pour plus d’informations, consultez la documentation du manifeste de la galerie d'extensions.

Option de configuration pour ne jamais télécharger de symboles spécifiques

Vous pouvez désormais ignorer le téléchargement des symboles pour les images spécifiées.

Dans la Symbols section de votre fichier de configuration DbgX.xml, vous pouvez ajouter une liste de symboles :

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

Dans le débogueur, vous pouvez exécuter dx Debugger.Settings.Symbols.DisabledSymbolsDownload pour afficher la liste actuelle des symboles qui ne sont pas téléchargés.

Vous pouvez également modifier la liste directement à partir du débogueur :

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

Pour faciliter le débogage des problèmes liés au téléchargement de sources basées sur SourceLink incorporé, vous pouvez maintenant utiliser la commande !lmsourcesinfo module pour afficher le contenu de SourceLink que le débogueur utilise.

Améliorations générales de l’interface utilisateur

Petites améliorations apportées aux fenêtres comme Modules et Pile.

  • La colonne d’en-tête est utilisée pour trier les vues de grille.
  • D’autres actions de clic droit sont disponibles.
  • La fenêtre Pile affiche les cadres en ligne lorsque cela est approprié.

Résolution des bogues

  • Correction d’un problème où les PDB supérieures à 4 Go ne seraient pas téléchargées sur HTTP. Edge est un exemple de PDB de ce type.
  • Correction d’un problème de mise en cache dans le fournisseur d’informations d’identification du débogueur. (Maintenant, il met en cache les informations d’identification par site.)
  • Correction des bogues lors de l’évaluation des déclencheurs de chargement de la galerie d’extensions.
  • Correction d’un bogue avec !address qui pouvait provoquer un plantage.
  • Correction apportée à !heap -a -a pour qu'elle fonctionne désormais.

TTD

Consultez les notes de publication TTD pour la version 1.11.410.

1.2402.24001.0

Nouvelles fonctionnalités

Débogage Linux en direct

Vous pouvez désormais déboguer un processus Linux en direct. Pour plus d’informations, consultez les articles suivants :

Pour un avenir prévisible, le client WinDbg requiert Windows, car WinDbg ne s’exécute pas sur Linux.

Enregistrer un sous-ensemble de l’exécution avec le « Débogage de voyage dans le temps »

Vous pouvez maintenant spécifier une liste de modules à enregistrer pour concentrer le TTD sur les modules dont vous vous souciez. Cette fonctionnalité peut réduire la surcharge d’enregistrement. Pour l’utiliser, dans la boîte de dialogue Configurer et Enregistrer , sélectionnez Sous-ensemble d’enregistrements d’exécution. Spécifiez ensuite les modules que vous souhaitez enregistrer. (Pour plus d’informations, consultez Problèmes connus.)

Pour un contrôle plus fin, vous pouvez enregistrer précisément votre programme à l’aide d’une nouvelle API d’enregistrement in-process. Pour savoir comment enregistrer votre programme, consultez notre exemple de code et notre documentation.

Fenêtre d’enregistrement compacte

La nouvelle fenêtre de registre ressemble à la sortie de la commande r. La modification à partir de la nouvelle fenêtre d’inscription n’est pas encore prise en charge.

Nouveaux paramètres pour e (Entrer des valeurs) dans les commandes mémoire

Les commandes e (Entrer des valeurs) dans la mémoire prennent désormais en charge les adresses physiques, tout comme les commandes d (Afficher la mémoire). Ces options sont prises en charge uniquement en mode noyau.

Choix Descriptif
/p Utilise les adresses de mémoire physique pour l’affichage. La plage spécifiée par Plage est extraite de la mémoire physique plutôt que de la mémoire virtuelle.
/p[c] Identique à /p, sauf que la mémoire mise en cache est lue. Les crochets autour c doivent être inclus.
/p[uc] Identique à /p, sauf que la mémoire non mise en cache est lue. Les crochets autour uc doivent être inclus.
/p[wc] Identique à /p, sauf que la mémoire combinée en écriture est lue. Les crochets autour wc doivent être inclus.

Pour en savoir plus, consultez e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Entrer des valeurs).

Résolution des bogues

  • Ajout de la prise en charge du démangling des noms Rust pour le débogage sous Linux.
  • Améliorations apportées au débogage CLR :
    • Ajout de la possibilité de forcer la pile en mode mixte marchant les images CLR.
      • Ajout du paramètre ForceMixedModeStackWalker à config.xml ou DbgX.xml.
      • Ajout de la commande !forceclrmixedmodeunwind pour les enquêtes ponctuelles ou si vous ne pouvez pas modifier le paramètre de configuration.
  • Améliorations générales du débogage CLR sur Linux.
  • Correction de plusieurs problèmes liés à LinuxKernel.js et aux variables par processeur.
    • Ajout de la commande !runq dans LinuxKernel.js afin de pouvoir vider les files d'attente d'exécution du planificateur de noyau par processeur (similaire à la commande runq de l'utilitaire de crash de Linux).
    • Corrections de diverses commandes dans LinuxKernel.js afin de correspondre aux modifications du noyau. Dans les noyaux plus récents, l’arborescence du minuteur utilise des nœuds RB mis en cache au lieu de nœuds RB bruts. Dans les noyaux plus récents, la all_bdevs liste est disparue, de sorte que les dispositifs de bloc sont maintenant parcourus à partir du superbloc à la place (blockdev_superblock).
  • Diverses corrections natvis ont été faites pour fonctionner davantage comme les versions récentes de Visual Studio.
  • Préféré sourcelink et hérité sourceinfo.
    • Ajout de la commande !lmsourcesinfo <module> pour afficher les flux sourcelink à partir de fichiers PDB (pour faciliter le débogage des problèmes avec sourcelink).

Problèmes connus

Lorsque vous spécifiez une liste de modules à enregistrer avec TTD, la spécification de plusieurs modules ne fonctionne pas dans cette version.

1.2308.2002.0

Nous avons apporté de nombreux correctifs de bogues et de petites améliorations.

1.2306.12001.0

Nous avons apporté de nombreux correctifs de bogues et de petites améliorations.

1.2303.30001.0

Note

Le débogueur a été renommé de WinDbg Preview en WinDbg.

Le débogueur hérité publié avec les outils de débogage pour Windows est maintenant appelé WinDbg (classique).

Débogage de voyage dans le temps sur ARM64

WinDbg s’exécute en mode natif sur ARM64, et nous avons également activé TTD des processus ARM64 natifs. Vous pouvez désormais enregistrer facilement les processus ARM64 natifs (et les processus x86 et ARM32) et les déboguer facilement, même sur votre ordinateur x64. La prise en charge des processus x64 ou x64 (ARM64EC) sur les appareils ARM64 n’est pas encore disponible.

Les performances globales du TTD ont également été améliorées, avec une surcharge d’enregistrement sensiblement réduite pour les processus qui utilisent des instructions SIMD courantes. Au total, 65 nouvelles instructions ont été optimisées, qui vont de MMX à SSE 4.2, AVX et AVX2.

Résolution ambiguë du point d’arrêt

Les points d’arrêt ambigus permettent au débogueur de définir des points d’arrêt dans certains scénarios où une expression de point d’arrêt se résout à plusieurs emplacements. Pour en savoir plus, consultez Résolution des points d’arrêt ambigus.

1.2107.13001.0

La recherche WinDbg Preview inclut désormais l’option de recherche à l’aide d’expressions régulières, appelées regex. Pour activer l'utilisation des expressions régulières dans la fenêtre que vous désirez rechercher, sélectionnez Ctrl+F. Basculez ensuite le bouton étiqueté .* à côté de la zone de recherche.

Mode restreint

Le mode restreint est un paramètre facultatif qui peut limiter le type de sessions de débogage que WinDbg Preview peut lancer aux seules sessions de débogage à distance et aux fichiers de vidage. Pour plus d’informations, consultez WinDbg : Mode restreint.

Prise en charge des variables ombrées

Dans les versions précédentes, WinDbg lève des erreurs « Symbole ambigu » lors de la tentative d’évaluation (??) ou d’affichage (dx) d’une variable qui partage son nom avec une autre variable dans la même portée. WinDbg désambigue désormais les variables qui partagent le même nom en ajoutant @n le nom de la variable. Les exemples incluent foo@0 et foo@1

Cette modification est également reflétée dans la fenêtre Locals . Auparavant, seule la variable la plus proche dans l’étendue est apparue.

1.2104.13002.0

Une fonctionnalité de productivité pratique de WinDbg Preview est la possibilité de détecter des modèles dans la fenêtre Commande . Pour détecter les modèles, sélectionnez un texte et toutes les autres instances de ce texte sont mises en surbrillance. Cette mise en surbrillance est utile lorsque vous examinez les modèles de mémoire. Maintenant, il met également en évidence des nombres équivalents dans d’autres rayons, peu importe la façon dont le nombre est mis en forme en hexadécimal, décimal ou notation scientifique. Pour en savoir plus sur les schémas de numérotation, consultez n (Définir la base numérique).

Exemple :

Lorsque vous sélectionnez 0x000001e2fb3f6160, toutes les autres instances sont mises en surbrillance, quel que soit le format.

Capture d’écran de la fenêtre **Commande** WinDbg avec plusieurs formats numériques mis en surbrillance.

Cette fonctionnalité fonctionne également avec des surlignages semi-temporaires. Sélectionnez Ctrl et double-cliquez sur un nombre pour mettre en surbrillance toutes ses instances. Vous pouvez effectuer le suivi de plusieurs nombres importants tout au long de l’historique des commandes de cette façon. (Pour effacer la mise en surbrillance, sélectionnez Ctrl et double-cliquez à nouveau sur le numéro.) Enfin, cette fonctionnalité fonctionne également lorsque vous recherchez des numéros en sélectionnant Ctrl+F.

Accès étendu au code source

La commande .srcpath, .lsrcpath (Set Source Path) a été mise à jour pour inclure la nouvelle balise DebugInfoD. Pour plus d’informations, consultez l’accès étendu au code source.

États hôtes et invités des processus WOW dans le modèle de données

Lorsque vous déboguez un processus WOW 32 bits à partir d’un contexte 64 bits, vous pouvez désormais accéder aux états hôtes et invités dans le modèle de données.

Exemples d’état invité 32 bits :

  • dx @$curprocess.Environment
  • dx @$curthread.Environment
  • dx @$curthread.Stack

Exemples d’état hôte 64 bits :

  • dx @$curprocess.NativeEnvironment
  • dx @$curthread.NativeEnvironment
  • dx @$curthread.NativeStack

Améliorations dans le débogage de JavaScript

JavaScript chargé dans l'UI utilise désormais la commande .scriptdebug pour le débogage direct dans la console. Pour plus d'informations, consultez scripts de débogage JavaScript : débogage JavaScript.

Améliorations de l’accessibilité

Avec WinDbg Preview, nous nous sommes engagés à créer un débogueur inclusif pour les ingénieurs handicapés. Nous avons apporté les améliorations suivantes à l’accessibilité :

  • Les liens de la fenêtre Commande sont maintenant cliquables via le clavier (en utilisant Maj+Entrée).
  • Navigation au clavier améliorée du menu principal.
  • Navigation au clavier améliorée du ruban.
  • Contraste accru sur les éléments de l’interface utilisateur.

Nouveau type d’accès aux données de remplacement pour le débogage de voyage dans le temps

Le débogage en temps réel fournit désormais un type d'accès aux données Overwrite. Les requêtes de mémoire telles que dx @$cursession.TTD.Memory() maintenant ont une autre colonne qui affiche les anciennes valeurs d’écritures.

Autres correctifs, améliorations et mises à jour

  • Ajout d’une fonctionnalité permettant de détecter et d’appliquer automatiquement une solution de contournement pour un problème matériel USB 3.1 lorsque l’hôte de débogage du noyau et la cible sont des contrôleurs USB 3.1.
  • Ajout d’un nouveau raccourci d’interface utilisateur : Ctrl+Maj+Sélectionner sur un lien DML le copie dans le Presse-papiers.

1.0.2007.01003

Marqueurs de chronologie

Marquez des positions temporelles importantes dans WinDbg au lieu de copier et coller manuellement la position dans le logiciel Bloc-notes. Les signets facilitent l’affichage en un clin d’œil des positions différentes dans la trace par rapport à d’autres événements et pour les annoter.

Vous pouvez fournir un nom descriptif pour les marque-pages.

Capture d’écran de la boîte de dialogue Nouveau signet avec un exemple de nom pour l’appel d’API first dans l’application Display Greeting.

Accédez aux signets via la fenêtre Chronologies disponible dans Affichage>Chronologie. Lorsque vous pointez sur un signet, le nom du signet s’affiche.

Capture d’écran de la chronologie WinDbg avec trois signets et une info-bulle qui affiche le nom du signet.

Vous pouvez appuyer et maintenir (ou cliquer avec le bouton droit) sur le signet pour accéder à cette position, renommer ou supprimer le signet.

Capture d’écran du menu contextuel du signet avec le bouton droit de la souris avec les options permettant de se déplacer vers la position, la modification et la suppression.

Fenêtre Modules

Une nouvelle fenêtre affiche les modules et leurs informations connexes disponibles via le ruban Affichage . La fenêtre Modules affiche :

  • Nom du module, y compris l’emplacement du chemin d’accès.
  • Taille en octets du module chargé.
  • Adresse de base où le module est chargé.
  • Version du fichier.

Capture d’écran de la fenêtre Modules WinDbg qui affiche cinq modules répertoriés.

Noms/descriptions de threads disponibles dans le débogage en direct

Les noms de threads définis depuis SetThreadDescription sont désormais disponibles lors du débogage en mode utilisateur en direct. Les noms de threads sont disponibles à l’aide de la ~ commande ou du modèle de données du débogueur.

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

Prise en charge de PDB portable

Le support pour les PDB portables a été ajouté. Le format PDB décrit un encodage des informations de débogage produites par les compilateurs de langages CLI et consommées par les débogueurs et d’autres outils. Pour plus d’informations, consultez symboles PDB portables.

Autres modifications et correctifs de bogues

  • Assistance fournie pour le débogage de vidages de noyaux Linux et le support de l'architecture AMD64 pour WinDbg.
  • Améliorations apportées à l’enregistrement des voyages dans le temps et autres corrections.

1.0.1912.11001

  • Chronologies TTD : une nouvelle fenêtre affiche une représentation visuelle d’événements importants dans votre trace : exceptions, points d’arrêt, appels de fonction et accès à la mémoire. Les chronologies ouvrent et affichent automatiquement des exceptions (le cas échéant) et des points d’arrêt. Pour plus d’informations, consultez La préversion de WinDbg : Chronologie.
  • Basculer vers le chrome de fenêtre par défaut : le chrome de fenêtre personnalisé que nous avons utilisé a provoqué des problèmes de mise à l’échelle et de redimensionnement. Nous l’avons donc supprimé pour l’instant.
  • Menu Fichier amélioré navigation au clavier : le menu fichier est plus facile à naviguer avec un seul clavier.

Autres modifications et correctifs de bogues

  • Désactivé les fenêtres Pile et Locals lorsque votre cible est en cours d’exécution afin qu’elle ne affiche pas « Erreur non spécifiée » lorsqu’il n’y a pas de cible.
  • Ajout d’une colonne Services à la boîte de dialogue Attacher pour vous aider à trouver facilement les services en cours d’exécution.
  • Correction d’un bogue qui empêchait la détection d’architecture de fonctionner lorsque les applications sont ouvertes avec des arguments.
  • Désassemblement amélioré pour la fenêtre Désassemblement lorsque des symboles privés sont chargés.
  • Suppression du bouton Charger JSProvider du ruban de script, car jsprovider.dll est désormais chargé automatiquement.

1.0.1908.30002

  • Améliorations apportées aux objets DTD : les requêtes appellent désormais des noms de paramètres, des types et des valeurs. Lorsque vous interrogez des traces pour les appels de fonction, vous pouvez obtenir des paramètres entièrement typés et leurs valeurs. Cette fonctionnalité facilite le filtrage des résultats par paramètres.
  • Prise en charge d’Open Enclave : WinDbg Preview peut désormais déboguer des applications Open Enclave. Pour plus d’informations, consultez Le débogage Open Enclave).
  • Vidages de mémoire centrale ELF : pour la prise en charge d’Open Enclave, WinDbg peut ouvrir des vidages de mémoire ELF, des fichiers binaires, et peut également ouvrir des symboles DWARF (DWARF 5 n’est pas pris en charge actuellement) à partir des enclaves et des applications Linux. Lorsque vous ouvrez un vidage principal à partir d’une application non-Windows, les fenêtres de base et les commandes doivent fonctionner correctement, mais la plupart des extensions et des commandes spécifiques à Windows ne fonctionnent pas. Les fichiers ELF et DWARF sont téléchargés à partir de serveurs de symboles en suivant les conventions de clé définies dans les conventions de clé SSQP. Les enclaves sont le seul scénario pris en charge, mais nous vous invitons à nous faire part de vos commentaires sur l'ouverture de dumps de noyau Linux supplémentaires.
  • Modification du format de fichier TTD : une mise à jour majeure du format de fichier pour les traces TTD interrompt la compatibilité vers l’avant. Les versions précédentes de WinDbg Preview ne peuvent pas ouvrir les traces enregistrées avec cette version et les futures versions de WinDbg Preview. Cette version et les versions futures pourront ouvrir à la fois les nouvelles et les anciennes traces.

Autres modifications

  • TTD utilise désormais le moteur 64 bits pour l’indexation et l’architecture appropriée du moteur de débogage pour les relectures. La réduction des problèmes de mémoire potentiels lors de l’indexation et des problèmes SOS lors de la relecture est maximisée.
  • L’exécution dx sans paramètre affiche désormais l’espace de noms racine pour faciliter la navigation.
  • Le menu Paramètres propose désormais des options pour modifier le symbole par défaut et l’emplacement du cache source.
  • La prise en charge de l’enregistrement AVX-512 (l’enregistrement d’AVX-512 provoque un ralentissement supérieur à la normale) est améliorée.
  • La gestion des licences hors connexion est activée.

1.0.1905.12001

  • Améliorations apportées à l’atténuation des erreurs SymSetDiaSession : le correctif pour atténuer l’erreur provoquée par l’injection de DbgHelp dans notre processus ne fonctionnait pas dans certains scénarios. Nous y avons apporté des améliorations et continuons à surveiller les commentaires sur cette erreur.

  • Personnalisation des couleurs d’accentuation : Souvent, les scénarios nécessitent plusieurs instances de WinDbg ouvertes. Le fait de se déplacer entre eux peut être déroutant et prendre un certain temps pour déterminer lequel est le « droit ». Nous avons ajouté la possibilité de modifier la couleur d’accentuation bleue pour distinguer visuellement les sessions et faciliter leur échange.

    Sélectionnez le ruban Affichage et sélectionnez une option de couleur d’accentuation dans la dernière section. Lorsque les sessions futures sont ouvertes à partir de cibles récentes, la couleur d’accentuation persiste dans le cadre de l’espace de travail de la cible.

  • Améliorations apportées à la tokenisation des sources : la fenêtre Source prend désormais en charge la tokenisation des fichiers sources Rust et des constructions __try/__except/__finally/__leave en C++ SEH.

  • Améliorations de Coroutine : nous avons amélioré la prise en charge des variables locales coroutine et certaines variables optimisées.

  • Paramètre de cache source et de symbole par défaut : nous avons ajouté une option au menu Paramètres sous Paramètres de débogage pour modifier l’emplacement du cache des symboles. Il existe un problème connu qui fait que laisser ce paramètre vide entraîne l’échec du chargement de la source. Nous prévoyons d’ajouter la validation pour empêcher ce problème de se produire dans une prochaine version.

  • -pv correctifs : Nous avons résolu un bogue qui aurait pu empêcher -pv (attachement nonvasif) de fonctionner dans certaines circonstances.

1.0.1904.18001

  • Correction de l’erreur SymSetDiaSession : nous avons signalé une erreur qui empêche l’ouverture de winDbg Preview dans certaines situations. Quelques applications externes tentent d’injecter une version de DbgHelp dans notre processus avant de le charger. Certaines d’entre elles utilisent une version de DbgHelp avec des fonctionnalités manquantes, ce qui provoque cette erreur lorsqu’on essaie d’utiliser ces fonctionnalités. Nous avons ajouté un correctif pour ce problème et prévoyons de le suivre pour déterminer s’il existe des scénarios dans lesquels il se produit toujours.
  • Contrôle de police : nous avons ajouté des paramètres pour contrôler la police et la taille de police. Il existe deux paramètres différents : l’un est pour les fenêtres de texte (fenêtres mono-espacées telles que Désassemblement, Source et Commande), et l’autre pour les fenêtres d’outils (comme Locals et Stack). Ces options n’affectent pas quelques zones. Nous prévoyons de les mettre à jour à l’avenir.
  • Améliorations apportées à la mise en surbrillance : la mise en surbrillance persistante du texte dans la fenêtre Commande met désormais également en surbrillance le texte dans les fenêtres Source et Notes .
  • Améliorations apportées au chargement des sources : nous avons modifié le mode de chargement des fichiers sources. Auparavant, lorsque vous avez ouvert un fichier source, les opérations de moteur comme l’exécution de commandes supplémentaires n’étaient pas possibles ou imprévisibles. Nous avons changé lorsque le chargement se produit pour permettre un meilleur parallélisme et une annulation plus fiable des opérations d’ouverture de source.

Autres modifications et correctifs de bogues

  • Ajout de l'option Go to Disassembly au menu contextuel de la fenêtre Source.
  • Ajout d’une case à cocher Suivre les instructions actuelles dans la fenêtre Désassembler .
  • Correction d’un bogue qui entraînait l’exécution lente de la fenêtre Commande lorsqu’elle génère de grandes quantités de texte.
  • Modification des touches Page haut et Page bas pour qu'elles fonctionnent comme dans Visual Studio.
  • Apporté des modifications afin que lorsqu’un fichier ASM soit ouvert dans la fenêtre Source , il dispose désormais d’un commentaire de base, d’une chaîne et d’une mise en surbrillance de directive.

1.0.1812.12001

Cette version inclut les mises à jour suivantes :

  • En-tête C++ du débogueur : il existe un nouvel en-tête C++, DbgModel.hinclus dans le sdk Windows pour étendre le modèle de données du débogueur via C++. Pour plus d’informations, consultez vue d’ensemble du modèle de données du débogueur C++. Cette version inclut une nouvelle extension qui ajoute davantage de fonctionnalités de style API au modèle de données du débogueur accessible via la dx commande, JavaScript et le nouvel DbgModel.h en-tête. Cette extension étend le modèle de données pour inclure des connaissances sur l’exécution de l’assembly et du code via l’espace de noms Debugger.Utility.Code et le système de fichiers local via l’espace de noms Debugger.Utility.FileSystem.
  • Extension de types synthétiques : avec cette nouvelle extension d’API, nous avons un nouvel exemple sur notre dépôt GitHub. Cette extension JavaScript lit les fichiers d’en-tête C de base et définit des informations de type synthétique pour les structures et les unions définies dans l’en-tête. Par le biais de la commande, la dx mémoire peut ensuite être vue structurée comme si vous disposiez d’une base de données PDB avec des informations de type pour ces types.

Autres modifications et correctifs de bogues

  • WinDbg Preview gère désormais de manière plus intelligente la mise au premier plan des fenêtres Source ou de la fenêtre Disassembly lors du passage pas à pas.
  • Le titre de la fenêtre WinDbg Preview a été réorganisé afin de présenter des informations plus importantes au début lors du débogage du noyau.
  • Le contraste d’arrière-plan alterné dans la fenêtre Commande doit être légèrement plus visible.

1.0.1810.2001

Cette version inclut les mises à jour suivantes :

  • Ajout d’une boîte de dialogue Paramètres que vous pouvez accéder à partir du menu Fichier ou du ruban Accueil .
  • Ajout d'une boîte de dialogue des paramètres des événements et des exceptions. Ce menu modifie la façon dont le débogueur gère les événements et les exceptions, l’équivalent des sx commandes ou de la boîte de dialogue filtres d’événements de WinDbg. Dans le ruban Accueil , sélectionnez Paramètres. Ensuite, dans le menu de gauche, sélectionnez Événements et Exceptions pour gérer les événements et les exceptions.
  • Amélioration de l’indexeur TTD avec de meilleures performances. Cette amélioration augmente les performances des fichiers de trace TTD d’indexation, ce qui accélère le processus d’indexation (entre 2 fois et 10 fois) tout en réduisant les fichiers d’index (environ 50% plus petits). Les améliorations des performances sont les plus notables pour les traces de plus de 4 Go de taille, ou lorsque vous utilisez une machine avec de nombreux cœurs de processeur (8+). Le nouvel indexeur facilite le débogage de traces volumineuses, supérieures à 50 Go.
  • Ajout d’un nouvel debugArch indicateur de lancement pour spécifier l’architecture. WinDbg Preview tente de lancer le moteur du débogueur avec le nombre de bits correct sur la cible pour une prise en charge améliorée du débogage du code managé. Il existe des circonstances où il ne peut pas déterminer la bonne architecture, ou vous pourriez vouloir remplacer ce qu’il décide. Utilisez -debugArch x86|amd64 pour contrôler l’architecture du moteur de débogueur.

Autres modifications et correctifs de bogues

  • Correction d’un bogue qui entraînait l’apparition de barres noires sur un débogueur plein écran avec une fenêtre flottante ouverte.
  • Correction d’un bogue qui entraînait l’effacement involontaire des options de symbole.
  • L’historique des commandes est maintenant conservé lors de l’ouverture depuis des cibles récentes.
  • Modification prise en charge dans la fenêtre du modèle de données dans laquelle vous pouvez désormais modifier des valeurs.
  • Rend les traces TTD plus claires, car elles ne sont pas indexées.
  • Amélioration des performances de la fenêtre Locals .
  • Ajout d’un bouton de ruban pour enregistrer les journaux de la fenêtre Commande dans un fichier.
  • Ajouté . SelectMany(\<projection\>) à l’ensemble par défaut de méthodes LINQ.

1.0.1807.11002

Cette version inclut les mises à jour suivantes :

  • Enregistrement et chargement automatiques des points d’arrêt : cette étape est la première étape pour remplacer les espaces de travail. Vous pouvez désormais enregistrer et charger des points d’arrêt. Le lancement d’un élément que vous avez débogué précédemment à partir de l’onglet Récents du menu Fichier charge désormais les points d’arrêt de cette session. Le but est de développer cette fonctionnalité pour conserver davantage d’informations d’une session à l’autre. Les points d’arrêt matériels (ba) et d’autres propriétés sur des points d’arrêt tels que des contextes et des conditions spécifiques au thread et au processus ne sont pas enregistrés actuellement.

Modifications mineures et correctifs de bogues

  • Ajout d’options -xde ligne de commande , , -xe-xd, -xnet -xi pour contrôler la gestion des exceptions et des événements. Ces options de ligne de commande se comportent comme leurs équivalents de commande.
  • Ajout de la prise en charge du formatage dans la fenêtre Notes pour le gras, le souligné et l'italique.
  • Correction de problèmes de zoom et de défilement.
  • Ajout de la prise en charge afin que la sélection de texte dans les fenêtres Commande, Mémoire, Source ou Désassembleur met désormais en surbrillance d’autres instances du texte sélectionné.
  • Correction d’un bogue où l'interruption du chargement des symboles entraînait l’échec du chargement des symboles pour le reste de la session.
  • Correction d’un bogue afin que NatVis recharge maintenant correctement lorsqu’une session redémarre.

1.0.1805.17002

Cette version inclut les mises à jour suivantes :

  • Nouvelle fenêtre Désassemblage : La fenêtre inclut désormais :

    • Le défilement vers le haut ou vers le bas charge maintenant en continu plus de désassemblage de code dès que possible.
    • La mise en surbrillance est utilisée pour identifier la syntaxe des nombres, des adresses de code et des codes d’opération.
    • La sélection d’un symbole de code saute la fenêtre Désassembler vers cet emplacement.
    • Placer le curseur sur un nombre affiche une info-bulle qui convertit ce nombre en d'autres bases.
    • L’utilisation d’en-têtes signifie le début d’une fonction.
  • Fenêtre Source plus rapide : la fenêtre Source a été mise à jour pour être plus rapide et plus économe en ressources.

Modifications mineures et correctifs de bogues

  • Résolution des problèmes liés à la mise en cache des symboles.
  • Correction de certains cas où le basculement de la fonction initiale n'était pas possible lorsque la cible n'était pas initialisée correctement.
  • Ajout de la prise en charge qui permet que, si vous sélectionnez un onglet dans la fenêtre Commande quand rien n'est disponible, le curseur reste maintenant dans le champ de saisie.
  • Ajout de la prise en charge pour que WinDbg Preview détecte désormais automatiquement la bitarité lors de l'ouverture de fichiers CAB.

1.0.1804.18003

Cette version inclut les mises à jour suivantes :

  • Améliorations de l’état des symboles et de l’annulation : il arrive que le débogueur affiche les symboles de chargement OCCUPÉs et qu’il est difficile de déterminer ce qu’il fait et pourquoi sans avoir !sym activé le bruit. Nous avons mis à jour winDbg Preview pour avoir une meilleure communication autour de ce qu’il fait lors du chargement de symboles pour vous aider à résoudre les problèmes.

    En plus des modifications qui vous permettent de voir ce qui se passe, nous avons également apporté des modifications qui rendent les symboles d’annulation plus fiables. La fenêtre Journaux contient certains des détails qui sont normalement générés lorsque !sym le bruit est activé. Si vous sélectionnez Afficher> les journaux, vous obtenez la sortie bruyante de chargement des symboles complète sans avoir à l’activer et à tenter de recharger les symboles.

  • Fenêtre Notes expérimentales : WinDbg Preview dispose désormais d’une fenêtre permettant de prendre des notes. Sélectionnez Afficher les>notes pour l’ouvrir. Si vous copiez/collez-y, les liens DML sont conservés et fonctionnent toujours comme s’il s’agissait de la fenêtre Commande . Vous pouvez également enregistrer et charger des fichiers de notes à partir du ruban Notes lorsque la fenêtre est ouverte.

  • Fenêtre Source expérimentale plus rapide : pour améliorer les performances de winDbg Preview, une nouvelle fenêtre source expérimentale est plus efficace. Quelques lacunes existent autour des menus contextuels et de la mise en surbrillance de la syntaxe, mais nous voulons donner à tout le monde la possibilité de l’essayer avant de le terminer pour nous donner des commentaires précoces. Exécutez $UseFastSourceWindow pour l'utiliser. Si vous voulez revenir à l’ancien, exécutez $UseMonacoSourceWindow. Le paramètre est conservé d'une session à l'autre. Vous devez fermer et rouvrir les fenêtres sources pour obtenir la nouvelle version.

  • API JSProvider version 1.2 : pour les extensions JavaScript qui déclarent la prise en charge de l’API version 1.2 :

    • Tout objet avec une .compareTo méthode qui quitte le script a un comparateur personnalisé sur celui-ci. (Les opérateurs de comparaison travaillent dans l’évaluateur DX et ailleurs. Un exemple est IModelObject::Compare.)
    • Tout objet avec une .equals méthode qui quitte le script a un opérateur d’égalité personnalisé sur celui-ci. (Les opérateurs == et != fonctionnent dans l’évaluateur DX et ailleurs. Un exemple est IModelObject::IsEqualTo.)
    • Les objets de modèle de données ou natifs qui entrent dans le script ont .compareTo et .equals sur eux, ce qui permet d’accéder à n’importe quel comparateur personnalisé ou implémentations d’égalité personnalisée.

Modifications mineures et correctifs de bogues

  • Ajout de la prise en charge pour que .server répertorie désormais un nom de domaine complet, afin de faciliter son utilisation lorsqu'il y a des problèmes liés aux noms courts.
  • Ajout de la prise en charge pour permettre à Ctrl+G de fonctionner désormais dans la fenêtre Source.
  • Ajout d’une barre d’adresses à la fenêtre Désassemblement .
  • Ajout de la prise en charge pour que WinDbg Preview gère désormais _NT_SYMBOL_PATH de façon plus conforme aux attentes.
  • Ajout de l’option -server de ligne de commande.
  • Ajout de la prise en charge pour que les requêtes du modèle de données TTD soient affichées progressivement. Si vous l’interrompez, vous voyez toujours des résultats. Cette fonctionnalité est expérimentale et facultative. Exécutez dx @$cursession.TTD.AsyncQueryEnabled = 1 pour l’activer.
  • Ajout de la prise en charge pour que la commande dps dispose désormais de liens vers les fichiers sources auxquels elle fait référence.

1.1801.19001.0

Cette version inclut les mises à jour suivantes :

  • Mise en surbrillance du texte : vous pouvez désormais mettre en surbrillance toutes les instances de texte sélectionné directement dans le débogueur. Pour utiliser cette fonctionnalité, sélectionnez du texte dans la fenêtre Commande , puis sélectionnez Mettre en surbrillance dans le ruban Commande . Vous pouvez également sélectionner Ctrl+Alt+H. Si vous utilisez l’une de ces options sur le texte déjà mis en surbrillance, la mise en surbrillance est supprimée.

Si vous préférez utiliser des commandes, vous pouvez utiliser la $hl commande :

$hl ["someValueHere"]: la mise en surbrillance donne du texte (ou une mise en surbrillance claire s’il est déjà mis en surbrillance). $hl clearAll: effacez toutes les entrées mises en surbrillance. $hl caseSensitive [1|0]: définissez la mise en surbrillance en tenant compte de la casse ou sans tenir compte de la casse. La valeur par défaut est insensible à la casse.

Cette version inclut également quelques correctifs de bogues mineurs.

1.1712.15003.0

Cette version inclut les mises à jour suivantes :

  • Requêtes de mémoire TTD : vous pouvez désormais interroger TTD pour les accès à la mémoire de manière similaire à la façon dont vous interrogez les appels aujourd’hui. Vous pouvez maintenant trouver toutes les lectures, écritures et exécutions qui accèdent à une plage spécifique de mémoire.

    • Exemple de lecture et d’écriture : dx @$cursession.TTD.Memory(startAddress, endAddress, "rw")
    • Exemple d’exécution unique : dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")
  • Modifications des paramètres : WinDbg Preview enregistre désormais automatiquement les paramètres entre les sessions, y compris votre chemin d’accès aux symboles et le chemin source.

Améliorations de JavaScript

  • Les entiers 64 bits en JavaScript contiennent désormais une méthode modulo, permettant une véritable opération modulo 64 bits.
  • Les objets définis en JavaScript peuvent désormais implémenter une notion comparable ou équitable personnalisée. Il fonctionne en dx utilisant des opérateurs C++ standard ou dans les opérations LINQ. Pour utiliser cette fonctionnalité, le script doit déclarer dans le initializeScript tableau qu’il prend en charge une nouvelle version de l’API hôte en insérant un enregistrement new host.apiVersionSupport(1, 2). Ensuite, vous pouvez utiliser ces fonctions dans n’importe quelle dx requête LINQ de fenêtre de modèle de données. Si la méthode implémente .compareTo(other), elle est comparable (les opérateurs de comparaison fonctionnent dans dx et LINQ). Si la méthode retourne une valeur négative, puis this < other. Si la méthode retourne zéro, alors this == other. Si la méthode retourne une valeur positive, puis this > other. Si la méthode implémente .equals(other), il est équitable (== fonctionne dans dx et LINQ). La méthode doit renvoyer true ou false.

Modifications mineures et correctifs de bogues

  • Correction d’un bogue dans lequel les fenêtres Stack et Locals ne fonctionnaient pas pendant le débogage de démarrage.
  • Mise à jour de la sortie de LM pour rendre le rapport plus précis concernant ProductVersion et des champs similaires.
  • Le bouton Step Out Back est désormais activé pendant les sessions TTD.
  • Ajout de la prise en charge de -lsrcpath.
  • Correction des en-têtes dans les fenêtres Locals, Watch et Model afin qu’elles ne disparaissent pas lorsque vous faites défiler vers le bas.
  • Ajout de la fonctionnalité qui permet que lorsque vous utilisez Alt+Tab pour revenir à WinDbg Preview, la fenêtre Commande conserve correctement l’emplacement du curseur.
  • Ajout du raccourci Ctrl+Alt+V pour activer/désactiver le mode détaillé.
  • Ajout de la prise en charge permettant désormais de désactiver le défilement automatique de la fenêtre Commande en sélectionnant et en maintenant enfoncé (ou en cliquant avec le bouton droit) l’onglet Commande et en sélectionnant Désactiver le défilement automatique.
  • Prise en charge ajoutée permettant de déboguer désormais les processus enfants via la page avancée des paramètres d'exécution.

1.0.14.0

Cette version inclut les mises à jour suivantes :

  • Amélioration de l’expérience du serveur de processus : une nouvelle notification dans le menu Fichier indique le serveur de processus avec lequel vous êtes connecté et avec lequel vous interagissez. Dans le cadre de ces modifications, lorsqu’une session de débogage se termine, la connexion au serveur de traitement persiste et vous pouvez vous déconnecter dans le menu Fichier .
  • Nouvelles options de disposition prédéfinies sur le ruban Affichage : une nouvelle option Disposition est disponible sur le ruban Affichage . Il existe actuellement trois dispositions : par défaut, axée sur le désassemblage et minimale.
  • Ruban Debugging Time Travel : un ruban Time Travel amélioré s’affiche lorsque vous déboguez une trace TTD.
  • Métadonnées des scripts JavaScript : les extensions JavaScript peuvent désormais retourner des métadonnées pour les propriétés et d’autres constructions. L’extension peut désormais fournir des chaînes d’aide, indiquer le rayon d’affichage pour les valeurs, etc. Les métadonnées sont fournies en plaçant un descripteur de métadonnées sur un objet, soit par la présence de Symbol.metadataDescriptor, soit par un appel explicite à host.metadata.defineMetadata. La fonction retourne, les valeurs itérées et d’autres contextes de valeur peuvent retourner des métadonnées pour leur valeur via host.metadata.valueWithMetadata.
  • Mises à jour de l’API JavaScript : certaines modifications potentiellement cassantes au niveau du code source ont été apportées aux API au sein du fournisseur JavaScript (y compris de nouvelles méthodes et propriétés anticipées sur des objets natifs). Les extensions existantes ne verront aucun des changements potentiellement décisifs sans indiquer qu’elles prennent en charge une nouvelle version de l’API JsProvider. La prise en charge de la nouvelle version de l’API est indiquée en plaçant un host.apiVersionSupport enregistrement dans le tableau retourné par initializeScript, avec une revendication de prise en charge de la version 1.1.

Modifications apportées à l’API version 1.1

  • Les fonctions host.getModuleSymbol et host.getModuleType retournent null si elles ne trouvent pas le symbole au lieu de lever une exception.
  • Tous les objets natifs ont la propriété d’adresse sur eux en plus de .targetLocation. Si l’objet n’a pas d’adresse, une exception est déclenchée lors de l'accès à la propriété.
  • Tous les objets natifs ont de nouvelles méthodes .getObjectValue et .setObjectValue associées pour accéder aux propriétés de l’objet, ce qui peut entrer en conflit avec les noms que JavaScript place sur l’objet (par exemple, address).

Autres modifications JavaScript

  • Les extensions JavaScript peuvent désormais ajouter et supprimer des propriétés sur des objets de modèle de données via Object.defineProperty et l’opérateur delete. L’ajout ou l’inscription d’une classe JavaScript en tant que modèle parent ou signature de type est toujours le moyen préféré de manipuler le modèle objet.
  • Les extensions JavaScript peuvent désormais modifier des variables globales au sein des modules dans la cible de débogage via une nouvelle host.setModuleSymbol API.
  • Toutes les fonctions mathématiques qui se trouvent sur le type de bibliothèque 64 bits (par exemple, , .add, .subtract.multiplyet .divide) sont également présentes sur les nombres JavaScript.
  • Les fonctions et propriétés JavaScript peuvent désormais retourner des valeurs, qui sont des énumérations par le biais du marshaling personnalisé. Une fonction ou un accesseur de propriété peut retourner host.typeSystem.marshalAs(value, type…) afin d’évoquer ce marshaling personnalisé.
  • La commande point d’arrêt du débogueur de script peut désormais s’arrêter sur les noms de fonctions en plus des positions de ligne/colonne.
  • Les objets de type dans les extensions JavaScript ont accès à leur module conteneur via la .containingModule propriété.

Modifications mineures et correctifs de bogues

  • Correction de la mise en forme des onglets du ruban conditionnel pour les rendre moins confus.
  • Reworked DML afin d'être plus strict dans l'analyse afin d'améliorer les performances.
  • Corrections diverses concernant les performances et le comportement de Ctrl+F.
  • Ajout d’un avertissement lors de l’exécution sans élévation avant d’essayer d’utiliser TTD.
  • Ajout d’une option permettant d’ignorer la détection automatique du nombre de bits de la cible.
  • Désactivé différents menus Fichier et options du ruban lorsqu'ils ne peuvent pas être utilisés (comme Go lorsqu'on est dans un fichier de vidage).

Problèmes connus

SOS ne fonctionne pas sur les traces x86.

1.0.13.0

Cette version ajoute le suivi des déplacements temporels. Avec le débogage par voyage temporel, vous pouvez enregistrer un processus, puis le rejouer ultérieurement en avant et en arrière. TTD peut vous aider à déboguer les problèmes plus facilement en vous permettant de « rembobiner » votre session de débogueur au lieu de devoir reproduire le problème jusqu’à ce que vous trouviez le bogue. Pour plus d’informations, consultez Débogage temporel : Aperçu.

1.0.12.0

Cette version était la première de WinDbg Preview. Pour obtenir des informations générales sur les fonctionnalités disponibles dans la préversion de WinDbg, consultez Les principales fonctionnalités de WinDbg.