Felsöka ett högnivåprogram
Viktigt!
Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).
Kontrollera att enheten är ansluten till datorn via USB. På menyn Ange startobjekt väljer du Azure Sphere App (HLCore) där Azure Sphere App ä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 kabelansluten anslutning i stället för att levereras via molnet.
Observera bild-ID:t för avbildningspaketet i Visa>utdata>Visa utdata från: Skapa utdata. Du använder avbildnings-ID senare i Självstudie: Skapa en molndistribution.
Som standard visar fönstret Utdata utdata från enhetsutdata. Om du vill se meddelanden från felsökningsprogrammet väljer du Felsöka från listrutan Visa utdata från: . Du kan också granska programmets demontering, registreringar eller minne via Windows-menyn Felsöka.>
Du kan sedan använda Visual Studio-felsökningsprogrammet för att ange brytpunkter, pausa, gå över, gå in, starta om eller stoppa programmet.
När den stoppas vid en brytpunkt i C-källkoden kan du öppna ett Disassembly-fönster som visar den aktuella adressen, assembler mnemonic för det aktuella kommandot och information som de register som ingår eller källkodskommandot som körs.
Så här öppnar du disassembly-fönstret:
- Kontrollera att C-kodkällan som innehåller brytpunkten är öppen i Visual Studio.
- Välj Felsöka>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 krävs, skapar Visual Studio Code projektet innan felsökningen startar.
Vänta några sekunder tills Visual Studio Code har skapat programmet, skapa ett avbildningspaket, distribuera det till brädet 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 skapas. 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ökningsutdata.
Använd Visual Studio Code-felsökningsprogrammet för att ange brytpunkter, pausa, gå över, gå in i, starta om eller stoppa programmet.
När den stoppas vid en brytpunkt i C-källkoden kan du öppna en Disassembly-vy som visar den aktuella adressen, rådata, assembler mnemonic för det aktuella kommandot och information som de register som ingår eller det källkodskommando som körs.
Så här öppnar du vyn Disassembly:
- Kontrollera att C-kodkällan som innehåller brytpunkten är öppen i en Visual Studio Code-redigerare.
- Högerklicka antingen i redigeringsfönstret och välj Öppna Demontera vy eller välj Visa>kommandopaletten>Öppna demonteringsvy.
Om du vill felsöka programmet stoppar du det och startar sedan om det med felsökning:
azsphere device app stop --component-id <ComponentId>
azsphere 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 rå 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 hjälp av PowerShell, Windows-kommandotolken eller Linux-kommandogränssnittet. Starta gdb-kommandoradsfelsökaren:
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
Kommentar
Azure Sphere SDK levereras med flera sysroots så att program kan rikta in sig på olika API-uppsättningar, enligt beskrivningen i Programkörningsversion, sysroots och Beta-API:er. Sysroots installeras i installationsmappen för Azure Sphere SDK under Sysroots.
Ange fjärrfelsökningsmålet till IP-adress 192.168.35.2 på port 2345:
target remote 192.168.35.2:2345
Kör de gdb-kommandon som 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 många dokumentationskällor för gdb.