Partager via


Tutoriel : Déboguer un projet CMake sur une machine Windows distante

Ce tutoriel utilise Visual Studio C++ sur Windows pour créer et générer un projet CMake que vous pouvez déployer et déboguer sur un ordinateur Windows distant. Le didacticiel est spécifique à Windows ARM64, mais les étapes peuvent être généralisées pour d’autres architectures.

Dans Visual Studio, l’expérience de débogage par défaut pour ARM64 consiste à déboguer à distance un ordinateur Windows ARM64. Configurez vos paramètres de débogage, comme indiqué dans ce tutoriel. Sinon, lorsque vous essayez de déboguer un projet CMake ARM64, vous obtenez une erreur indiquant que Visual Studio ne trouve pas la machine distante.

Dans ce tutoriel, vous allez découvrir comment :

  • créer un projet CMake
  • configurer un projet CMake pour générer pour ARM64
  • configurer un projet CMake pour qu’il s’exécute sur une machine Windows ARM64 distante
  • déboguer un projet CMake s’exécutant sur une machine Windows ARM64 distante

Prérequis

Sur l’ordinateur hôte

Pour configurer Visual Studio pour le développement C++ multiplateforme, installez les outils de génération pour l’architecture cible. Pour ce tutoriel, installez les outils de génération ARM64 en procédant comme suit :

  1. Exécutez le programme d’installation de Visual Studio. Si vous n’avez pas encore installé Visual Studio, consultez Installer Visual Studio
  2. Dans l’écran d’accueil de Visual Studio Installer, choisissez Modifier.
  3. Dans les choix en haut, choisissez Composants individuels.
  4. Faites défiler jusqu’à la section Compilateurs, outils de génération et runtimes .
  5. Vérifiez que les éléments suivants sont sélectionnés :
    • Outils C++ CMake pour Windows
    • MSVC v142 - VS 2019 C++ ARM64 Build Tools (Dernière version) Il est important que vous choisissiez les ARM64 outils de génération et non les ARM outils de génération (recherchez les 64) et que vous choisissez la version qui va avec VS 2019.
  6. Sélectionnez Modifier pour installer les outils.

Sur l’ordinateur distant

  1. Installez les outils distants sur l’ordinateur distant. Pour ce tutoriel, installez les outils ARM64 en suivant les instructions fournies dans Télécharger et installer les outils à distance.
  2. Démarrez et configurez le débogueur distant sur l’ordinateur distant. Pour ce didacticiel, suivez les instructions de configuration du débogueur distant sur l’ordinateur Windows distant.

Créer un projet CMake

Sur l’ordinateur hôte Windows :

  1. Exécuter Visual Studio
  2. Dans le menu principal, sélectionnez Fichier>Nouveau>Projet.
  3. Sélectionner le projet>CMake suivant
  4. Donnez au projet un nom et choisissez un emplacement. Sélectionnez ensuite Créer.

Donnez à Visual Studio quelques instants pour créer le projet et remplir la Explorateur de solutions.

Configurer pour ARM64

Pour cibler une machine Windows ARM64, vous devez créer à l’aide des outils de génération ARM64.

Sélectionnez la liste déroulante Configuration de Visual Studio, puis sélectionnez Gérer les configurations.

Choose Manage Configurations in the Visual Studio configurations drop-down.

Ajoutez une nouvelle configuration en sélectionnant Ajouter une nouvelle configuration (le bouton vert + ).
Dans la boîte de dialogue CMake Paramètres qui s’affiche, sélectionnez arm64-debug, puis sélectionnez Sélectionner :

Add arm64-debug configuration.

Cette commande ajoute une configuration de débogage nommée arm64-Debug à votre CmakeSettings.json fichier. Ce nom de configuration est un nom convivial unique qui vous permet d’identifier plus facilement ces paramètres dans la liste déroulante Configuration .

La liste déroulante Toolset est définie sur msvc_arm64_x64. Vos paramètres doivent maintenant ressembler à ceci :

CMake settings dialog.

Remarque

Dans la liste déroulante Ensemble d’outils, msvc_arm64 sélectionne les outils hôtes 32 bits pour effectuer la compilation croisée vers ARM64, tandis que msvc_arm64 x64 sélectionne les outils hôtes 64 bits pour effectuer la compilation croisée vers ARM64, ce que vous allez faire dans ce didacticiel. Pour plus d’informations sur les environnements d’ensemble d’outils disponibles, consultez Environnements prédéfinis.

Enregistrez le fichier CMakeSettings.json. Dans la liste déroulante de configuration, sélectionnez arm64-debug. (Il peut prendre un moment après l’enregistrement du CMakeSettings.json fichier pour qu’il apparaisse dans la liste) :

Ensure that arm64-debug is selected in the Visual Studio configurations drop-down.

Ajouter un fichier de configuration de débogage

Ensuite, ajoutez des informations de configuration qui indiquent à Visual Studio où trouver votre ordinateur distant, ainsi que d’autres détails de configuration.

Modifiez l’affichage Explorateur de solutions en fonction des cibles en sélectionnant le bouton Changer de vue :

Solution explorer switch view button.

Ensuite, dans le Explorateur de solutions, double-cliquez sur CMake Targets View pour afficher le projet.

Ouvrez le dossier du projet (dans cet exemple, CMakeProject3 Project), puis cliquez avec le bouton droit sur l’exécutable, puis sélectionnez Ajouter une configuration de débogage :

Select add debug configuration.

Cette commande crée un launch.vs.json fichier dans votre projet. Ouvrez-le et modifiez les entrées suivantes pour activer le débogage à distance :

  • projectTarget: cette valeur est définie pour vous si vous avez ajouté le fichier de configuration de débogage à partir de la vue Explorateur de solutions cibles conformément aux instructions ci-dessus.
  • remoteMachineName: défini sur l’adresse IP de l’ordinateur ARM64 distant ou son nom d’ordinateur.

Pour plus d’informations sur launch.vs.json les paramètres, consultez launch.vs.json la référence de schéma.

Remarque

Si vous utilisez la vue dossier au lieu de la vue cibles dans Explorateur de solutions, cliquez avec le bouton droit sur le CMakeLists.txt fichier et sélectionnez Ajouter une configuration de débogage. Cette expérience diffère de l’ajout de la configuration de débogage à partir de la vue cibles de la manière suivante :

  • Vous serez invité à sélectionner un débogueur (sélectionnez C/C++ Remote Windows Debug).
  • Visual Studio fournit moins d’informations sur le modèle de configuration dans le launch.vs.json fichier. Vous devrez donc l’ajouter vous-même. Vous devez fournir les entrées et projectTarget les remoteMachineName entrées. Lorsque vous ajoutez la configuration à partir de la vue cibles, vous devez uniquement spécifier remoteMachineName.
  • Pour la projectTarget valeur de paramètre, case activée la liste déroulante des éléments de démarrage pour obtenir le nom unique de votre cible, par exemple, dans ce didacticiel, il s’agit CMakeProject3.exede « .

Démarrer le moniteur de débogueur distant sur l’ordinateur Windows distant

Avant d’exécuter votre projet CMake, vérifiez que le débogueur distant Visual Studio 2019 s’exécute sur l’ordinateur Windows distant. Vous devrez peut-être modifier les options du débogueur distant en fonction de votre situation d’authentification.

Par exemple, sur l’ordinateur distant, dans la barre de menus Débogueur distant Visual Studio, sélectionnez Options d’outils>. Définissez le mode d’authentification pour qu’il corresponde à la configuration de votre environnement :

Remote debugger authentication options.

Ensuite, dans Visual Studio sur l’ordinateur hôte, mettez à jour le launch.vs.json fichier pour qu’il corresponde. Par exemple, si vous choisissez Aucune authentification sur le débogueur distant, mettez à jour le launch.vs.json fichier dans votre projet en ajoutant "authenticationType": "none" à la configurations section launch.vs.json. Sinon, "authenticationType" les "windows" valeurs par défaut et n’ont pas besoin d’être explicitement indiquées. Cet exemple montre un launch.vs.json fichier configuré pour aucune authentification :

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
        "type": "remoteWindows",
        "authenticationType": "none"
        "name": "CMakeLists.txt",
        "project": "CMakeLists.txt",
        "projectTarget": "CMakeProject3.exe",
        "remoteMachineName": "<ip address goes here>",
        "cwd": "${debugInfo.defaultWorkingDirectory}",
        "program": "${debugInfo.fullTargetPath}",
        "deploy": [],
        "args": [],
        "env": {}
    },
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "CMakeProject3.exe",
      "name": "CMakeProject3.exe"
    }
  ]
}

Déboguer l’application

Sur l’ordinateur hôte, dans visual Studio Explorateur de solutions, ouvrez le fichier CPP de votre projet CMake. Si vous êtes toujours en mode Cibles CMake, vous devez ouvrir le nœud (exécutable) pour le voir.

Le fichier CPP par défaut est une application console hello world simple. Définissez un point d’arrêt sur return 0;.

Dans la barre d’outils Visual Studio, utilisez la liste déroulante Élément de démarrage pour sélectionner le nom que "name" vous avez spécifié dans votre launch.vs.json fichier :

Example startup item dropdown with CMakeProject3.exe selected.

Pour démarrer le débogage, dans la barre d’outils Visual Studio, choisissez Déboguer>le débogage (ou appuyez sur F5).

S’il ne démarre pas, vérifiez que les éléments suivants sont correctement définis dans le launch.vs.json fichier :

  • "remoteMachineName" doit être défini sur l’adresse IP, ou le nom de l’ordinateur, de l’ordinateur WINDOWS ARM64 distant.
  • "name" doit correspondre à la sélection dans la liste déroulante des éléments de démarrage de Visual Studio.
  • "projectTarget" doit correspondre au nom de la cible CMake que vous souhaitez déboguer.
  • "type" doit avoir la valeur "remoteWindows"
  • Si le type d’authentification sur le débogueur distant est défini sur Aucune authentification, vous devez avoir "authenticationType": "none" défini dans le launch.vs.json fichier.
  • Si vous utilisez Authentification Windows, connectez-vous lorsque vous y êtes invité à utiliser un compte reconnu par l’ordinateur distant.

Une fois le projet généré, l’application doit apparaître sur l’ordinateur Windows ARM64 distant :

Hello CMake console app running on remote Windows ARM64 machine.

Visual Studio sur l’ordinateur hôte doit être arrêté au point d’arrêt pour return 0;.

Ce que vous avez appris

Dans ce tutoriel, vous avez créé un projet CMake, configuré pour générer Windows sur ARM64 et l’avez débogué sur un ordinateur Windows ARM64 distant.

Étapes suivantes

Consultez les rubriques suivantes pour en savoir plus sur la configuration et le débogage des projets CMake dans Visual Studio :