Felsöka ett program på hög nivå
Kontrollera att enheten är ansluten till datorn via USB. På menyn Ange startobjekt väljer du Azure Sphere App (HLCore) där Azure Sphere-appen är namnet på ditt aktuella högnivåprogram eller trycker på F5.
Om du uppmanas att skapa projektet väljer du Ja. Visual Studio kompilerar programmet, skapar ett avbildningspaket, läser in det separat på tavlan och startar det i felsökningsläge. Separat inläsning innebär att programmet levereras direkt från datorn via en fast anslutning i stället för att levereras via molnet.
Notera avbildnings-ID:et för avbildningspaketet i visa>utdata> från: Skapautdata. Du kommer att använda avbildnings-ID senare i självstudiekursen: Skapa en molndistribution.
Som standard visar fönstret Utdata utdata från Enhetsutdata. Om du vill se meddelanden från felsökaren väljer du Felsök i listrutan Visa utdata från: . Du kan också kontrollera programdemonteringen, registren eller minnet via Menyn Felsöka>Windows .
Du kan sedan använda Visual Studio-felsökaren för att ange brytpunkter, pausa, stega över, stega in, starta om eller stoppa programmet.
När den stoppas vid en brytpunkt i C-källkoden kan du öppna ett demonteringsfönster som visar den aktuella adressen, assembler-mnemonic för det aktuella kommandot och information som de berörda registerna eller källkodskommandot som körs.
Så här öppnar du fönstret Demontera :
- Kontrollera att C-kodkällfilen som innehåller brytpunkten är öppen i Visual Studio.
- Välj Debug>Windows>Disassembly eller tryck på Alt+8.
Tryck på F5 för att skapa och felsöka projektet. Om projektet inte har skapats tidigare, eller om filer har ändrats och återskapats, skapas projektet i Visual Studio Code innan felsökningen påbörjas.
Vänta i några sekunder på att Visual Studio-koden ska skapa programmet, skapa ett avbildningspaket, distribuera det till tavlan och starta det i felsökningsläge. Statusuppdateringar visas i fönstret Utdata längs vägen.
Först avgör CMake om programmet behöver byggas. I så fall flyttas fokus till utdatafönstret, som visar utdata från CMake/Build.
Därefter visar fönstret Utdata resultatet när avbildningspaketet distribueras till enheten. Slutligen får felsökningskonsolen fokus och visar felsökningsresultat.
Använd Visual Studio Code-felsökaren för att ange brytpunkter, pausa, stega över, stega in, starta om eller stoppa programmet.
När den stoppas vid en brytpunkt i C-källkoden kan du öppna en demonterad vy som visar den aktuella adressen, rådata för hex, assembler-mnemonic för det aktuella kommandot och information som de aktuella registren eller källkodskommandot som körs.
Så här öppnar du vyn Demontera:
- Kontrollera att C-kodkällfilen som innehåller brytpunkten är öppen i en Visual Studio-kodredigerare.
- Högerklicka i redigeringsfönstret och välj Öppna demonteringsvy eller välj Visa>kommandopaletten>Öppna demonteringsvy.
Om du vill felsöka programmet stoppar du det och startar sedan om det med felsökning:
az sphere device app stop --component-id <ComponentId>
az sphere device app start --debug-mode --component-id <ComponentId>
Du bör se:
<ComponentID>
App state : debugging
GDB port : 2345
Output port : 2342
Core : High-level
Command completed successfully in 00:00:00.9121174.
Öppna en kommandotolk och använd valfri Windows-terminalklient för att upprätta en Telnet- eller raw-TCP-anslutning för att läsa utdataströmmen från processen. Ange 192.168.35.2 som IP-adress och 2342 som port.
Öppna ett kommandoradsgränssnitt med PowerShell, Windows-kommandotolken eller Linux-kommandogränssnittet. Starta kommandoradsfelsökaren gdb :
Kommandotolken i 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
Observera
Azure Sphere SDK levereras med flera sysroots så att program kan rikta olika API-uppsättningar enligt beskrivningen i Application Runtime-versionen, sysroots och Beta-API:er. Sysroots installeras i Azure Sphere SDK-installationsmappen under Sysroots.
Ställ in fjärrfelsökningsmålet på IP-adress 192.168.35.2 på port 2345:
target remote 192.168.35.2:2345
Kör de gdb-kommandon du väljer. Till exempel:
break main
c
Kommandona
break
ochc
anger en brytpunkt vid inmatning till main() och fortsätter sedan körningen efter brytpunkten. Det finns flera olika dokumentationskällor för gdb.