Déboguer des modules WASM dans VS Code

Vous pouvez déboguer localement des modules WASM à l’aide de points d’arrêt et du débogueur intégré dans Visual Studio Code. Cet article explique comment configurer et utiliser le débogueur avec l’environnement de développement local Azure IoT Operations.

Avant de suivre les étapes décrites dans cet article, configurez votre environnement de développement local et générez et exécutez une application de graphe localement. Pour plus d’informations, consultez Générer des modules WASM pour les flux de données.

Prerequisites

Lancez l'exemple Utiliser le registre de schéma avec des modules WASM pour installer l’espace de travail d'exemple.

Configurer le débogage

  1. Ouvrez le fichier operators/filter/src/lib.rs dans l’espace schema-registry-scenario de travail.

  2. Recherchez la filter fonction et définissez un point d’arrêt en cliquant dans la marge en regard du numéro de ligne ou en appuyant F9sur .

    fn filter(input: DataModel) -> Result<bool, Error> {
        let DataModel::Message(message) = input else {
            return Err(Error {message: "Unexpected input type.".to_string()});
        };
        // ... rest of function
    }
    

Compilation pour le débogage

  1. Appuyez sur Ctrl+Shift+P pour ouvrir la palette de commandes et rechercher Azure IoT Operations : Générer tous les opérateurs Data Flow.

  2. Sélectionnez déboguer comme mode de compilation. Attendez la fin de la génération.

Exécuter avec débogage activé

Appuyez sur Ctrl+Shift+P pour ouvrir la palette de commandes et rechercher Azure IoT Operations : Démarrer l’environnement de développement. Sélectionnez déboguer comme mode d’exécution.

  1. Appuyez sur Ctrl+Shift+P et recherchez Opérations Azure IoT : exécuter Application Graph.

  2. Sélectionnez le lldb-debug.graph.dataflow.yaml fichier de graphique.

  3. Sélectionnez déboguer comme mode d’exécution.

  4. Sélectionnez le data dossier dans votre espace de travail VS Code pour vos données d’entrée. Le conteneur DevX démarre pour exécuter le graphique avec l’exemple d’entrée.

  5. Une fois le conteneur DevX lancé, le conteneur hôte d'application démarre avec un lldb-server pour le débogage.

Déboguer le module WASM

  1. L’exécution s’arrête automatiquement au point d’arrêt que vous définissez dans la filter fonction.

  2. Utilisez l’interface de débogage VS Code pour :

    • Inspectez les valeurs des variables dans le panneau Variables .
    • Parcourez le code à l’aide F10 ou F11.
    • Affichez la pile des appels dans le panneau Pile des appels .
    • Ajoutez des surveillances pour des variables ou des expressions spécifiques.
  3. Poursuivez l’exécution en appuyant ou en sélectionnant F5 le bouton Continuer .

  4. Le débogueur s’arrête au point d’arrêt de chaque message en cours de traitement, ce qui vous permet d’inspecter le flux de données.

Conseils de débogage

  • Utilisez la console Debug pour évaluer les expressions et inspecter l’état d’exécution.
  • Définissez des points d’arrêt conditionnels en cliquant avec le bouton droit sur un point d’arrêt et en ajoutant des conditions.
  • Utilisez cette option F9 pour activer et désactiver les points d’arrêt sans les supprimer.
  • Le panneau Variables affiche l’état actuel des variables locales et des paramètres de fonction.

Cette fonctionnalité de débogage vous permet de résoudre les problèmes, de comprendre le flux de données et de valider votre logique de module WASM avant le déploiement en production.