Visual Studio Enterprise 2019 embarque une préversion de Time Travel Debugging,
une solution de débogage inversé qui vous permet de rejouer l'exécution du code dans une app

Le 2 avril, Microsoft a annoncé la disponibilité générale de Visual Studio 2019 sur Windows et macOS.

Microsoft a lancé Visual Studio 2017 en mars 2017 et Visual Studio 2017 pour macOS en mai 2017, ce qui s'est avéré être la « version la plus populaire de Visual Studio jamais créée ». Les préversions de Visual Studio 2019 ont commencé à être publiées en début décembre.

Visual Studio 2019 améliore Visual Studio 2017 dans tous les domaines. Il inclut une nouvelle fenêtre de démarrage permettant aux développeurs d’intégrer plus rapidement leur code (simplification du clonage d’un référentiel Git ou de l’ouverture d’un projet ou d’un dossier existant), apporte l’amélioration de l’écran de sélection de modèles, vient avec l’augmentation de l’espace de codage, s’accompagne d’une nouvelle expérience de recherche, dispose de capacités de refactoring plus nombreuses, propose un indicateur de santé du document ainsi qu’un débogage plus intelligent. De plus, tout ce qui précède fonctionne à la fois avec votre projet existant et vos nouveaux projets.

L’une des nouveautés apportées par Visual Studio 2019 est Time Travel Debugging (TDD), une solution de débogage inversé qui vous permet d’enregistrer l’exécution du code dans une application ou un processus et de le rejouer en avant et en arrière. TTD améliore le débogage car vous pouvez remonter dans le temps pour mieux comprendre les conditions qui conduisent à un bogue spécifique. De plus, vous pouvez le rejouer plusieurs fois pour comprendre comment résoudre au mieux le problème. La technologie TTD a récemment été introduite dans une version de prévisualisation de WinDbg pour les scénarios de code natif.

Il faut noter qu’elle n’est réservée qu’à la version entreprise.

Mark, de Microsoft, explique que

Citation Envoyé par Microsoft
La préversion de TTD (Time Travel Debugging) dans Visual Studio Enterprise 2019 offre la possibilité d'enregistrer une application Web s'exécutant sur une machine virtuelle Azure, puis de reconstruire et de relire avec précision le chemin d'exécution. TTD s'intègre à notre offre Snapshot Debugger et vous permet de rembobiner et de rejouer chaque ligne de code autant de fois que vous le souhaitez, ce qui vous permet d'isoler et d'identifier les problèmes susceptibles de se produire uniquement dans les environnements de production.

Le type de débogage le plus efficace se produit souvent dans ce que nous appelons la «boucle interne». Pendant que vous êtes en train de réviser et de déboguer le code localement, vous devez passer au contrôle de version. Les problèmes que nous rencontrons au cours du développement de la boucle interne sont généralement plus faciles à comprendre et à diagnostiquer car ils sont accessibles et reproductibles.
Nom : Visual1.png
Affichages : 844
Taille : 7,5 Ko

Avec TTD, Microsoft donne aux développeurs la possibilité d’enregistrer le code exécuté en production et de rejouer le chemin d’exécution dans Visual Studio. TTD vous donne également la possibilité d'avancer et de reculer dans le temps, comme si vous effectuiez un débogage «de boucle interne» localement. Vous avez également accès à d'importantes fonctionnalités de débogage telles que les sections locales et la pile d'appels.

Et Mark poursuit en disant que

Citation Envoyé par Microsoft
Les débogueurs d’aujourd’hui vous permettent généralement d’arrêter à un point d’arrêt spécifique en interrompant l’ensemble du processus, puis d’avancer. Même avec un outil de débogage plus avancé comme IntelliTrace, vous enregistrez des événements et des données à des moments précis. TTD présente un avantage considérable par rapport aux instantanés, à la journalisation ou aux fichiers de vidage sur incident, car ces méthodes ne contiennent généralement pas les détails exacts du chemin d’exécution qui a conduit à la défaillance ou au bogue final.
Débuter avec TTD

La préversion de TTD peut être activée dans la dernière version de Visual Studio Enterprise 2019 pour les machines virtuelles Azure sur le système d'exploitation Windows exécutant ASP.NET (4.8+).

Après avoir installé la dernière version de Visual Studio Enterprise, procédez comme suit:
  1. Ouvrez le projet que vous souhaitez utiliser pour Time Travel Debug. Assurez-vous de disposer de la même version du code source que celle publiée sur votre machine virtuelle Azure.
  2. Choisissez Débogage> Attacher Snapshot Debugger et sélectionnez la machine virtuelle Azure sur laquelle votre projet est déployé avec un compte de stockage Azure. Vous devrez installer l'extension de site Snapshot Debugger lors de la première tentative de connexion.
  3. Sélectionnez l'option Time Travel Debugging, puis cliquez sur Attacher. Une fois que Visual Studio est en mode Snapshot Debugger, il sera capable d’enregistrer avec TTD.
    Nom : attach-snapshot-debugger-ttd.gif
Affichages : 942
Taille : 746,9 Ko
  4. Créez un point d’accès et configurez-le pour permettre un débogage en mode TTD. Cliquez sur Démarrer \ Mettre à jour la collection.
  5. Une fois que votre Snapshot a été collectée, cliquez sur Afficher la Snapshot. Vous pouvez utiliser la barre de commande pour avancer et revenir en arrière dans la méthode enregistrée.

Limites du TTD

Au cours de la phase de prévisualisation initiale de TTD, Microsoft va prendre en charge les applications Web AMD64 exécutées sur une machine virtuelle Azure. Microsoft s’attend à ce que l'enregistrement ajoute une surcharge importante à votre processus en cours, en le ralentissant en fonction de la taille du processus et du nombre de threads actifs. Microsoft anticipe également une dégradation des expériences de débogage dans certains scénarios.

Citation Envoyé par Microsoft
Lors des tests de prévisualisation, nous avons constaté que la taille des fichiers TTD allait de plusieurs centaines de mégaoctets à plusieurs gigaoctets, en fonction de la durée de votre session et de la durée d'exécution de l'application Web. Toutefois, les fichiers créés par TTD seront nettoyés à la fin de la session Snapshot Debugger et le recyclage du pool d'applications sera lancé. Pour notre version de prévisualisation, nous vous recommandons également d'utiliser une machine virtuelle avec un minimum de 8 Go de RAM.
Source : Microsoft

Et vous ?

Que pensez-vous de cette solution ?

Voir aussi :

Visual Studio Live Share désormais installé par défaut dans Visual Studio 2019 et toujours disponible comme extension pour VS Code
Microsoft annonce la disponibilité générale de Visual Studio 2019 sur Windows et macOS, petit tour d'horizon sur les nouveautés et améliorations
Visual Studio Code version 1.32 s'accompagne de nombreuses améliorations, comme la possibilité de résoudre automatiquement des problèmes courants
IntelliJ IDEA 2019.1 EAP5 permet de visualiser les emplacement récents de code, et prend en charge les modifications apportées par Android Studio 3.3