Neo Global Development (NGD) Seattle a publié une version actualisée de son débogueur de contrat Neo Smart pour Neo3 Preview3, apportant avec elle la première mise en œuvre terminée du soutien de débogage de voyage dans le temps. La nouvelle version de débogueur inclut également la prise en charge des points d’arrêt d’exception, en faisant usage de l’ajout récent de la prise en charge de la manipulation des exceptions try/catch dans la VM de Neo3.

Cette nouvelle fonctionnalité pour Neo3 est destinée à rendre les contrats intelligents se comportent plus comme des applications traditionnelles qui peuvent se remettre d’un comportement inattendu. Dans le mode par défaut, les points d’arrêt sont déclenchés par des exceptions non prises, mais ils peuvent également être modifiés pour casser les exceptions capturées à la place.

Point d’arrêt d’exception dans le code source et la vue du démontage

L’accompagnement de la mise à jour de débogueur est un rafraîchissement à la version Preview3 de Neo Express, qui ajoute dans la possibilité pour les traces d’exécution de contrat à capturer et enregistrer à partir d’instances de blockchain néo-express.

Introduit pour la première fois au Consensus: Distribué en mai,le débogage des voyages dans le temps est une technique qui permet aux développeurs de rembobiner et de rejouer l’exécution du code afin d’observer les étapes menant à un bogue. Ceci est destiné à rendre beaucoup plus facile de comprendre le contexte dans lequel un bogue se pose, et peut réduire considérablement la quantité de temps passé à essayer de reproduire des défauts.

Cette forme de débogage est obtenue grâce à l’utilisation de la capture de traces. Les traces peuvent être comparées à un enregistrement d’une exécution de contrat, qui, parallèlement aux fichiers d’informations sur le contrat compilé et le débogage, permettent de prendre du recul à travers les étapes d’une exécution ou de l’exécuter à l’envers.

Actuellement, seules les transactions s’exécutent avec le déclencheur d’application sont prises en charge, le mode Vérification devant être pris en charge dans une version de débogueur future. Toutes les autres fonctionnalités, telles que l’inspection variable et la vue de démontage sont disponibles pour le débogage de trace et le débogage traditionnel de contrat.

Bien que Neo Express soit le premier outil capable de tracer la capture, dans les plugins futurs seront également libérés pour les clients de nœuds pour permettre aux traces d’exécution d’être capturés à partir de tous les réseaux, y compris MainNet et TestNet. Cela permettra aux développeurs de déboguer des contrats dans des environnements de production où le débogage traditionnel ne serait normalement pas possible.

Par exemple, un développeur peut exécuter un nœud Neo3 TestNet et le définir pour capturer toutes les traces d’un contrat qu’il a déployé. Si l’une des invocations a entraîné une défaillance inattendue, la trace pourrait être examinée de plus près dans le débogueur vs code afin d’identifier et de corriger le bogue. De même, la technique pourrait être utilisée pour effectuer une autopsie sur les bogues qui se produisent dans les contrats MainNet, aidant à réduire une résolution potentielle.

Une démonstration de débogage de traces a été fournie parallèlement à la version, montrant aux utilisateurs comment utiliser la nouvelle fonctionnalité avec les fichiers de suivi inclus, les points de contrôle néo-express et les instructions étape par étape.