Freigeben über


Lernprogramm: Debuggen eines CMake-Projekts auf einem Remote-Windows-Computer

In diesem Tutorial verwenden Sie C++ in Visual Studio unter Windows, um ein CMake-Projekt zu erstellen, das Sie anschließend auf einem Windows-Remotecomputer bereitstellen und debuggen können. Dieses Tutorial gilt speziell für Windows-ARM64, jedoch können die Schritte für andere Architekturen generalisiert werden.

In Visual Studio ist die Standarddebuggingfunktion für ARM64 das Remotedebuggen eines ARM64-Windows-Computers. Konfigurieren Sie Ihre Debugeinstellungen wie in diesem Tutorial gezeigt. Andernfalls erhalten Sie beim Debuggen eines ARM64-CMake-Projekts die Fehlermeldung, dass Visual Studio den Remotecomputer nicht finden kann.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen eines CMake-Projekts
  • Konfigurieren eines CMake-Projekts zur Erstellung für die ARM64-Architektur
  • Konfigurieren eines CMake-Projekts zur Ausführung auf einem ARM64-Windows-Remotecomputer
  • Debuggen eines CMake-Projekts auf einem ARM64-Windows-Remotecomputer

Voraussetzungen

Auf dem Hostcomputer

Installieren Sie die Buildtools für die Zielarchitektur, um Visual Studio für die plattformübergreifende C++-Entwicklung einzurichten. Installieren Sie für dieses Tutorial die ARM64-Buildtools, indem Sie die folgenden Schritte ausführen:

  1. Führen Sie den Visual Studio-Installer aus. Wenn Sie Visual Studio noch nicht installiert haben, finden Sie weitere Informationen unter Installieren von Visual Studio.
  2. Klicken Sie auf der Startseite des Visual Studio-Installers auf Anpassen.
  3. Wählen Sie oben die Option Einzelne Komponenten aus.
  4. Scrollen Sie nach unten zum Abschnitt Compiler, Buildtools und Runtimes.
  5. Stellen Sie sicher, dass Folgendes ausgewählt ist:
    • C++-CMake-Tools für Windows
    • MSVC v142 – VS 2019 C++-ARM64-Buildtools (aktuell): Es ist wichtig, dass Sie die ARM64-Buildtools und nicht die ARM-Buildtools auswählen (suchen Sie nach „64“). Außerdem müssen Sie die Version für VS 2019 auswählen.
  6. Klicken Sie auf Anpassen, um die Tools zu installieren.

Auf dem Remotecomputer

  1. Installieren Sie die Remotetools auf dem Remotecomputer. Installieren Sie für dieses Tutorial die ARM64-Tools, indem Sie die Anweisungen unter Herunterladen und Installieren der Remotetools ausführen.
  2. Starten und konfigurieren Sie den Remotedebugger auf dem Remotecomputer. Führen Sie für dieses Tutorial hierzu die Anweisungen unter Einrichten der Remotedebuggers auf dem Windows-Remotecomputer aus.

Erstellen eines CMake-Projekts

Auf dem Windows-Hostcomputer:

  1. Führen Sie Visual Studio aus.
  2. Wählen Sie im Hauptmenü Datei>Neu>Projekt aus.
  3. Wählen Sie dann CMake-Projekt>Weiter aus.
  4. Geben Sie dem Projekt einen Namen, und wählen Sie einen Speicherort aus. Klicken Sie anschließend auf Erstellen.

Warten Sie einen Moment, damit Visual Studio das Projekt erstellen und den Projektmappen-Explorer auffüllen kann.

Konfiguration für ARM64

Damit Sie einen ARM64-Windows-Computer als Ziel verwenden können, müssen Sie ARM64-Buildtools verwenden.

Klicken Sie auf die Visual Studio-Dropdownliste Konfiguration, und wählen Sie die Option Konfigurationen verwalten aus.

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

Fügen Sie eine neue Konfiguration hinzu, indem Sie "Neue Konfiguration hinzufügen" (die grüne + Schaltfläche) auswählen.
Wählen Sie im daraufhin angezeigten Dialogfeld "CMake Einstellungen "arm64-debug" und dann "Auswählen" aus:

Add arm64-debug configuration.

Durch diesen Befehl wird der Datei CmakeSettings.json eine Debugkonfiguration mit dem Namen arm64-Debug hinzugefügt. Bei diesem Konfigurationsnamen handelt es sich um einen eindeutigen Anzeigenamen, der die Identifikation dieser Einstellungen in der Dropdownliste Konfiguration für Sie vereinfacht.

In der Dropdownliste Toolset wird die Option msvc_arm64_x64 festgelegt. Ihre Einstellungen sollten nun wie folgt aussehen:

CMake settings dialog.

Hinweis

In der Dropdownliste Toolset werden mit msvc_arm64 32-Bit-Hosttools für die Kreuzkompilierung für ARM64 ausgewählt, während mit msvc_arm64 x64 64-Bit-Hosttools für die Kreuzkompilierung für ARM64 ausgewählt werden, was Sie in diesem Tutorial tun. Weitere Informationen zu den verfügbaren Toolsetumgebungen finden Sie unter Vordefinierte Umgebungen.

Speichern Sie die Datei CMakeSettings.json. Wählen Sie in der Dropdownliste für Konfigurationen arm64-debug aus. (Nach dem Speichern der Datei CMakeSettings.json kann es einen Moment dauern, bis sie in der Liste angezeigt wird.):

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

Hinzufügen einer Debugkonfigurationsdatei

Als Nächstes fügen Sie Konfigurationsinformationen hinzu, die Visual Studio anweisen, wo der Remotecomputer zu finden ist, und andere Konfigurationsdetails enthalten.

Klicken Sie im Projektmappen-Explorer auf Ansicht wechseln, um zur Zielansicht zu wechseln:

Solution explorer switch view button.

Doppelklicken Sie dann im Projektmappen-Explorer auf CMake-Zielansicht, um das Projekt anzuzeigen.

Öffnen Sie den Projektordner (in diesem Beispiel den Ordner CMakeProject3 Project), klicken Sie dann mit der rechten Maustaste auf die ausführbare Datei, und wählen Sie die Option Debugkonfiguration hinzufügen aus.

Select add debug configuration.

Durch diesen Befehl wird im Projekt die Datei launch.vs.json erstellt. Öffnen Sie die Datei, und ändern Sie die folgenden Einträge, um das Remotedebuggen zu aktivieren:

  • projectTarget: Dieser Wert wird für Sie festgelegt, wenn Sie die Debugkonfigurationsdatei gemäß den obigen Anweisungen über die Zielansicht des Projektmappen-Explorers hinzugefügt haben.
  • remoteMachineName: legen Sie die IP-Adresse des ARM64-Remotecomputers oder den Namen des Computers fest.

Weitere Informationen über launch.vs.json-Einstellungen finden Sie in der launch.vs.json-Schemareferenz.

Hinweis

Wenn Sie die Ordneransicht anstelle der Zielansicht im Projektmappen-Explorer verwenden, klicken Sie mit der rechten Maustaste auf die Datei CMakeLists.txt, und wählen Sie die Option Debugkonfiguration hinzufügen aus. Diese Vorgehensweise unterscheidet sich folgendermaßen vom Hinzufügen der Debugkonfiguration über die Zielansicht:

  • Sie werden dazu aufgefordert, einen Debugger auszuwählen (wählen Sie C/C++-Windows-Remotedebugging aus).
  • Visual Studio stellt weniger Konfigurationsvorlageninformationen in der Datei launch.vs.json bereit, weshalb Sie diese selbst hinzufügen müssen. Sie müssen remoteMachineName und projectTarget angeben. Wenn Sie die Konfiguration über die Zielansicht hinzufügen, müssen Sie nur remoteMachineName angeben.
  • Überprüfen Sie für den projectTarget-Einstellungswert die Dropdownliste „Startelement“, um den eindeutigen Namen Ihres Ziels zu finden. In diesem Tutorial lautet der Name CMakeProject3.exe.

Starten des Remotedebugmonitors auf dem Windows-Remotecomputer

Stellen Sie sicher, dass der Visual Studio 2019-Remotedebugger auf dem Windows-Remotecomputer ausgeführt wird, bevor Sie Ihr CMake-Projekt ausführen. Abhängig von Ihrer Authentifizierungssituation müssen Sie ggf. die Remotedebuggeroptionen ändern.

Klicken Sie beispielsweise auf dem Remotecomputer in der Visual Studio Remote Debugger-Menüleiste auf Extras>Optionen. Legen Sie den Authentifizierungsmodus entsprechend Ihrer Umgebung fest:

Remote debugger authentication options.

Ändern Sie dann die Datei launch.vs.json entsprechend in Visual Studio auf dem Hostcomputer. Wenn Sie beispielsweise die Option Keine Authentifizierung für den Remotedebugger festlegen, ändern Sie die Datei launch.vs.json in Ihrem Projekt, indem Sie in launch.vs.json im configurations-Abschnitt "authenticationType": "none" hinzufügen. Andernfalls wird für "authenticationType" standardmäßig "windows" festgelegt, was nicht explizit festgelegt werden muss. Im folgenden Beispiel wird die Datei launch.vs.json ohne Authentifizierung veranschaulicht:

{
  "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"
    }
  ]
}

Debuggen der App

Öffnen Sie im Projektmappen-Explorer von Visual Studio auf dem Hostcomputer die CPP-Datei Ihres CMake-Projekts. Wenn die CMake-Zielansicht noch geöffnet ist, müssen Sie den Knoten (executable) (ausführbar) öffnen, damit die Datei angezeigt wird.

Bei der CPP-Standarddatei handelt es sich um eine einfache Hallo Welt-Konsolen-App. Legen Sie einen Haltepunkt bei return 0; fest.

Verwenden Sie in der Visual Studio-Symbolleiste die Dropdownliste Startelement, um den Namen auszuwählen, den Sie in der Datei launch.vs.json für "name" festgelegt haben:

Example startup item dropdown with CMakeProject3.exe selected.

Klicken Sie in der Visual Studio-Symbolleiste auf Debuggen>Debuggen starten (oder drücken Sie F5), um das Debuggen zu starten.

Wenn es nicht gestartet wird, stellen Sie sicher, dass die folgenden Angaben in der Datei launch.vs.json korrekt sind:

  • Für "remoteMachineName" sollte die IP-Adresse oder der Name des ARM64-Windows-Remotecomputers festgelegt sein.
  • "name" sollte mit der Auswahl in der Dropdownliste „Startelement“ von Visual Studio übereinstimmen.
  • "projectTarget" sollte mit dem Namen des CMake-Ziels übereinstimmen, das Sie debuggen möchten.
  • "type" sollte "remoteWindows" entsprechen
  • Wenn der Authentifizierungstyp für den Remotedebugger auf Keine Authentifizierung festgelegt ist, muss "authenticationType": "none" in der Datei launch.vs.json festgelegt sein.
  • Wenn Sie die Windows-Authentifizierung verwenden, melden Sie sich mit einem vom Remotecomputer erkannten Konto an, wenn Sie dazu aufgefordert werden.

Nachdem das Projekt erstellt wurde, sollte die App auf dem ARM64-Windows-Remotecomputer angezeigt werden:

Hello CMake console app running on remote Windows ARM64 machine.

Visual Studio sollte auf dem Hostcomputer beim Breakpoint für return 0; angehalten werden.

Vermittelte Inhalte

In diesem Tutorial haben Sie ein CMake-Projekt erstellt, dieses für die Erstellung für Windows auf ARM64 konfiguriert und das Debuggen auf einem ARM64-Windows-Remotecomputer durchgeführt.

Nächste Schritte

In den folgenden Artikeln erhalten Sie weitere Informationen zum Konfigurieren und Debuggen von CMake-Projekten in Visual Studio: