Condividi tramite


Eseguire il debug di un'applicazione di alto livello

  1. Verifica che il dispositivo sia connesso al PC tramite USB. Nel menu dell'elemento di avvio Imposta , seleziona App Azure Sphere (HLCore), dove App Azure Sphere è il nome dell'applicazione di alto livello corrente o premi F5.

    Pulsante Debugger GDB remoto

  2. Se viene richiesto di creare il progetto, selezionare . Visual Studio compila l'applicazione, crea un pacchetto di immagini, lo sideload sulla bacheca e lo avvia in modalità debug. Il sideload significa che l'applicazione viene fornita direttamente dal PC tramite una connessione cablata, invece che tramite cloud.

    Nota l'ID immagine del pacchetto di immagininell'output Mostra output>di:>Output build. L'ID immagine verrà usato più avanti in Esercitazione: Creare una distribuzione cloud.

  3. Per impostazione predefinita, la finestra Output mostra l'output da Output dispositivo. Per visualizzare i messaggi del debugger, selezionare Debug dal menu a discesa Mostra output da : . Puoi anche esaminare lo smontaggio del programma, i registri o la memoria tramite il menu Debug>Di Windows .

È quindi possibile usare il debugger di Visual Studio per impostare i punti di interruzione, sospendere, eseguire un passaggio, eseguire un passaggio, riavviare o arrestare l'applicazione.

Durante l'interruzione in corrispondenza di un punto di interruzione nel codice sorgente C, è possibile aprire una finestra Disassembly che mostra l'indirizzo corrente, il mnemonic assembler per il comando corrente e informazioni come i registri coinvolti o il comando codice sorgente in esecuzione.

Per aprire la finestra Disassembly :

  1. Assicurarsi che il file di origine codice C contenente il punto di interruzione sia aperto in Visual Studio.
  2. Seleziona Debug>Windows>Disassembly o premi ALT+8.
  1. Premere F5 per compilare ed eseguire il debug del progetto. Se il progetto non è stato creato in precedenza o se i file sono stati modificati ed è necessaria la ricostruzione, Visual Studio Code crea il progetto prima dell'inizio del debug.

  2. Attendi alcuni secondi che Visual Studio Code crei l'applicazione, crei un pacchetto di immagini, lo distribuisci alla bacheca e lo avvii in modalità debug. Lungo il percorso, nel riquadro Output verranno visualizzati gli aggiornamenti di stato.

    Prima di tutto, CMake determina se l'applicazione deve essere compilata. In tal caso, lo stato attivo passa alla finestra di output, che visualizza l'output da CMake/Build.

    Successivamente, il riquadro Output mostra il risultato quando il pacchetto di immagini viene distribuito nel dispositivo. Infine, la console di debug riceve lo stato attivo e mostra l'output del debugger.

Usa il debugger di Visual Studio Code per impostare i punti di interruzione, sospendere, eseguire un passaggio, eseguire un passaggio, riavviare o arrestare l'applicazione.

Mentre ti fermi a un punto di interruzione nel codice sorgente C, puoi aprire una visualizzazione Disassembly che mostra l'indirizzo corrente, i dati esadecimali non elaborati, il mnemonic assembler per il comando corrente e informazioni come i registri coinvolti o il comando codice sorgente in esecuzione.

Per aprire la visualizzazione Disassembly:

  1. Assicurarsi che il file sorgente codice C contenente il punto di interruzione sia aperto in un editor di Visual Studio Code.
  2. Fare clic con il pulsante destro del mouse nella finestra dell'editor e scegliere Apri visualizzazione disassembly o Visualizza>tavolozza dei comandi>Apri visualizzazione disassembly.

Per eseguire il debug dell'applicazione, arrestarla e riavviarla con il debug:

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

Dovresti vedere:

<ComponentID>
App state   : debugging
GDB port    : 2345
Output port : 2342
Core        : High-level
Command completed successfully in 00:00:00.9121174.
  1. Apri un prompt dei comandi e utilizza qualsiasi client terminal di Windows per stabilire una connessione TCP Telnet o RAW per leggere il flusso di output dal processo. Specificare 192.168.35.2 come indirizzo IP e 2342 come porta.

  2. Aprire un'interfaccia della riga di comando usando PowerShell, il prompt dei comandi di Windows o la shell dei comandi di Linux. Avviare il debugger della riga di comando gdb :

    Prompt dei comandi di 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
    

    Nota

    Azure Sphere SDK viene fornito con più sysroot in modo che le applicazioni possano essere destinate a set DI API diversi, come descritto nella versione di Runtime dell'applicazione, sysroots e API Beta. I sysroot vengono installati nella cartella di installazione di Azure Sphere SDK in Sysroots.

  3. Impostare la destinazione di debug remoto sull'indirizzo IP 192.168.35.2 sulla porta 2345:

    target remote 192.168.35.2:2345
    
  4. Esegui i comandi gdb scelti. Per esempio:

    break main
    
    c
    

    I break comandi e c impostano un punto di interruzione all'entrata su main() e quindi continuano l'esecuzione dopo il punto di interruzione, rispettivamente. Per gdb sono disponibili numerose fonti di documentazione.