Déboguer une application de haut niveau

  1. Vérifiez que votre appareil est connecté à votre PC par USB. Dans le menu Définir l’élément de démarrage , sélectionnez Application Azure Sphere (HLCore)Application Azure Sphere est le nom de votre application de haut niveau actuelle ou appuyez sur F5.

    Bouton Débogueur GDB distant

  2. Si vous êtes invité à générer le projet, sélectionnez Oui. Visual Studio compile l’application, crée un package d’image, le charge sur la carte et le démarre en mode débogage. Le chargement indépendant signifie que l’application est fournie directement à partir du PC via une connexion câblée, plutôt que par le biais du cloud.

    Notez l’ID d’image du package d’image dans la sortie Afficher> lasortie> de : Sortiedebuild. Vous utiliserez l’ID d’image plus loin dans Tutoriel : Créer un déploiement cloud.

  3. Par défaut, la fenêtre Sortie affiche la sortie de sortie de l’appareil. Pour afficher les messages du débogueur, sélectionnez Déboguer dans le menu déroulant Afficher la sortie de : . Vous pouvez également inspecter le désassemblement du programme, les registres ou la mémoire via le menu Déboguer>Windows .

Vous pouvez ensuite utiliser le débogueur Visual Studio pour définir des points d’arrêt, suspendre, effectuer un pas à pas, effectuer un pas à pas détaillé, redémarrer ou arrêter l’application.

Lorsque vous vous arrêtez à un point d’arrêt dans votre code source C, vous pouvez ouvrir une fenêtre Désassemblement qui affiche l’adresse actuelle, le mnémonique de l’assembleur pour la commande actuelle et des informations telles que les registres impliqués ou la commande de code source en cours d’exécution.

Pour ouvrir la fenêtre Désassemblement :

  1. Vérifiez que le fichier source de code C contenant le point d’arrêt est ouvert dans Visual Studio.
  2. Sélectionnez Déboguer> ledésassemblementwindows> ou appuyez sur Alt+8.
  1. Appuyez sur F5 pour générer et déboguer le projet. Si le projet n’a pas été généré précédemment, ou si les fichiers ont changé et qu’une reconstruction est nécessaire, Visual Studio Code génère le projet avant le démarrage du débogage.

  2. Attendez plusieurs secondes que Visual Studio Code génère l’application, crée un package d’image, le déploie sur la carte et le démarre en mode débogage. Vous verrez status mises à jour dans le volet Sortie en cours de route.

    Tout d’abord, CMake détermine si l’application doit être générée. Si c’est le cas, le focus se déplace sur la fenêtre de sortie, qui affiche la sortie de CMake/Build.

    Ensuite, le volet Sortie affiche le résultat à mesure que le package d’image est déployé sur l’appareil. Enfin, la console de débogage reçoit le focus et affiche la sortie du débogueur.

Utilisez le débogueur Visual Studio Code pour définir des points d’arrêt, suspendre, effectuer un pas à pas, effectuer un pas à pas détaillé, redémarrer ou arrêter l’application.

Lors de l’arrêt à un point d’arrêt dans votre code source C, vous pouvez ouvrir une vue Désassemblement qui affiche l’adresse actuelle, les données hexadécimale brutes, l’assembleur mnémonique de la commande actuelle et des informations telles que les registres impliqués ou la commande de code source en cours d’exécution.

Pour ouvrir la vue Désassemblement :

  1. Vérifiez que le fichier source de code C contenant le point d’arrêt est ouvert dans un éditeur Visual Studio Code.
  2. Cliquez avec le bouton droit dans la fenêtre de l’éditeur et sélectionnez Ouvrir le mode Désassemble ou sélectionnez Afficher> lapalette> de commandesOuvrir la vue Désassemble.

Pour déboguer l’application, arrêtez-la, puis redémarrez-la avec le débogage :

az sphere device app stop --component-id <ComponentId>
az sphere device app start --debug-mode --component-id <ComponentId>

Vous devriez voir :

<ComponentID>
App state   : debugging
GDB port    : 2345
Output port : 2342
Core        : High-level
Command completed successfully in 00:00:00.9121174.
  1. Ouvrez une invite de commandes et utilisez n’importe quel client de terminal Windows pour établir une connexion Telnet ou TCP brute afin de lire le flux de sortie du processus. Spécifiez 192.168.35.2 comme adresse IP et 2342 comme port.

  2. Ouvrez une interface de ligne de commande à l’aide de PowerShell, de l’invite de commandes Windows ou de l’interpréteur de commandes Linux. Démarrez le débogueur de ligne de commande gdb :

    Invite de commandes Windows

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_HighLevelApp.out
    

    Note

    Le Kit de développement logiciel (SDK) Azure Sphere est fourni avec plusieurs sysroots afin que les applications puissent cibler différents ensembles d’API, comme décrit dans Version du runtime d’application, sysroots et API bêta. Les sysroots sont installés dans le dossier d’installation du Kit de développement logiciel (SDK) Azure Sphere sous Sysroots.

  3. Définissez la cible de débogage distant sur l’adresse IP 192.168.35.2 sur le port 2345 :

    target remote 192.168.35.2:2345
    
  4. Exécutez les commandes gdb de votre choix. Par exemple :

    break main
    
    c
    

    Les break commandes et c définissent un point d’arrêt lors de l’entrée sur main(), puis continuent l’exécution après le point d’arrêt, respectivement. De nombreuses sources de documentation sont disponibles pour gdb.