Freigeben über


Debuggen einer allgemeinen Anwendung

  1. Stellen Sie sicher, dass Ihr Gerät über USB mit Ihrem PC verbunden ist. Wählen Sie im Menü Startelement festlegen die Option Azure Sphere-App (HLCore) aus, wobei Azure Sphere-App der Name Ihrer aktuellen allgemeinen Anwendung ist, oder drücken Sie F5.

    Schaltfläche

  2. Wenn Sie aufgefordert werden, das Projekt zu erstellen, wählen Sie Ja aus. Visual Studio kompiliert die Anwendung, erstellt ein Imagepaket, überlädt es quer auf das Board und startet es im Debugmodus. Querladen bedeutet, dass die Anwendung direkt vom PC über eine kabelgebundene Verbindung und nicht über die Cloud übermittelt wird.

    Notieren Sie sich die Bild-ID des Bildpakets in der AusgabeAusgabe>>anzeigen Show von: Buildausgabe. Sie verwenden die Image-ID später in Tutorial: Erstellen einer Cloudbereitstellung.

  3. Standardmäßig wird im Ausgabefenster die Ausgabe der Geräteausgabe angezeigt. Wählen Sie zum Anzeigen von Meldungen aus dem Debugger im Dropdownmenü Ausgabe anzeigen von: die Option Debuggen aus. Sie können auch die Programmdemontage, Die Registrierungen oder den Arbeitsspeicher über das Menü Debuggen> vonFenstern überprüfen.

Anschließend können Sie den Visual Studio-Debugger verwenden, um Haltepunkte festzulegen, die Anwendung anzuhalten, zu überspringen, neu zu starten oder zu beenden.

Während sie an einem Haltepunkt in Ihrem C-Quellcode beendet wurde, können Sie ein Disassembly-Fenster öffnen, in dem die aktuelle Adresse, der Assembler mnemonisch für den aktuellen Befehl und Informationen wie die beteiligten Register oder der ausgeführte Quellcodebefehl angezeigt werden.

So öffnen Sie das Fenster Disassemblierung :

  1. Stellen Sie sicher, dass die C-Codequelldatei, die den Haltepunkt enthält, in Visual Studio geöffnet ist.
  2. Wählen Sie Debuggen>Windows>Disassembly aus, oder drücken Sie ALT+8.
  1. Drücken Sie F5, um das Projekt zu erstellen und zu debuggen. Wenn das Projekt noch nicht erstellt wurde oder dateien geändert wurden und eine Neuerstellung erforderlich ist, erstellt Visual Studio Code das Projekt, bevor das Debuggen gestartet wird.

  2. Warten Sie einige Sekunden, bis Visual Studio Code die Anwendung erstellt, ein Imagepaket erstellt, auf dem Board bereitgestellt und im Debugmodus gestartet wird. Auf dem Weg werden status Updates im Bereich Ausgabe angezeigt.

    Zunächst bestimmt CMake, ob die Anwendung erstellt werden muss. Wenn ja, verschiebt sich der Fokus auf das Ausgabefenster, in dem die Ausgabe von CMake/Build angezeigt wird.

    Als Nächstes wird im Bereich Ausgabe das Ergebnis angezeigt, wenn das Imagepaket auf dem Gerät bereitgestellt wird. Schließlich erhält die Debugkonsole den Fokus und zeigt die Debuggerausgabe an.

Verwenden Sie den Visual Studio Code-Debugger , um Haltepunkte festzulegen, die Anwendung anzuhalten, zu überspringen, neu zu starten oder zu beenden.

Während sie an einem Haltepunkt in Ihrem C-Quellcode beendet wurde, können Sie eine Disassemblierungsansicht öffnen, die die aktuelle Adresse, hexadezimierte Rohdaten, den Assembler mnemonisch für den aktuellen Befehl und Informationen wie die beteiligten Register oder den ausgeführten Quellcodebefehl anzeigt.

So öffnen Sie die Disassemblierungsansicht:

  1. Stellen Sie sicher, dass die C-Code-Quelldatei, die den Haltepunkt enthält, in einem Visual Studio Code-Editor geöffnet ist.
  2. Klicken Sie entweder mit der rechten Maustaste in das Editorfenster, und wählen Sie Disassemblansicht öffnen aus, oder wählen Sie Ansicht>Befehlspalette>Disassemblansicht öffnen aus.

Um die Anwendung zu debuggen, beenden Sie sie, und starten Sie sie dann mit debuggen neu:

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

Folgendes sollte angezeigt werden:

<ComponentID>
App state   : debugging
GDB port    : 2345
Output port : 2342
Core        : High-level
Command completed successfully in 00:00:00.9121174.
  1. Öffnen Sie eine Eingabeaufforderung, und verwenden Sie einen beliebigen Windows-Terminalclient , um eine Telnet- oder unformatierte TCP-Verbindung herzustellen, um den Ausgabestream aus dem Prozess zu lesen. Geben Sie 192.168.35.2 als IP-Adresse und 2342 als Port an.

  2. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell, der Windows-Eingabeaufforderung oder der Linux-Befehlsshell. Starten Sie den gdb-Befehlszeilendebugger:

    Windows-Eingabeaufforderung

    "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
    

    Hinweis

    Das Azure Sphere SDK wird mit mehreren Sysroots ausgeliefert, sodass Anwendungen verschiedene API-Sätze als Ziel verwenden können, wie unter Anwendungslaufzeitversion, Sysroots und Beta-APIs beschrieben. Die Sysroots werden im Installationsordner des Azure Sphere SDK unter Sysroots installiert.

  3. Legen Sie das Remotedebuggingziel auf Port 2345 auf die IP-Adresse 192.168.35.2 fest:

    target remote 192.168.35.2:2345
    
  4. Führen Sie alle von Ihnen ausgewählten gdb-Befehle aus. Zum Beispiel:

    break main
    
    c
    

    Die break Befehle und c legen bei der Eingabe einen Haltepunkt auf Standard() fest und setzen dann die Ausführung nach dem Haltepunkt fort. Für gdb stehen zahlreiche Dokumentationsquellen zur Verfügung.