Felsöka program som kan användas i realtid

Här är några felsökningssteg för problem som kan uppstå under utveckling av rtapps (real-time capable applications).

Felsökningsproblem

Felsökningen kan misslyckas av följande orsaker:

  • Windows Update ersätter USB-drivrutinen för realtidskärnorna med en allmän drivrutin. Om du vill återställa felsökningsfunktionen för realtidskärnor öppnar du ett kommandoradsgränssnitt med PowerShell eller Kommandotolken i Windows med administratörsbehörighet och återaktivera kärnfelsökning i realtid. Den NÖDVÄNDIGA USB-drivrutinen installeras när du kör:

    az sphere device enable-development --enable-rt-core-debugging
    
  • Filen med felsökningsinställningar innehåller fel. I så fall kan felsökaren eventuellt inte startas. Om du har redigerat inställningarna för felsökaren kontrollerar du att filens syntax är korrekt.

  • Felsökaren för on-chip kan redan ha startats i ett annat sammanhang. Om du ser ett fel, till exempel "Felsökarserver: Fel: kunde inte binda gdb till socket på port 4444: Adress används redan" eller "Fel: libusb_open() misslyckades med LIBUSB_ERROR_ACCESS", kontrollerar du om du redan har en openocd- eller gdb-process igång.

    Om du kör linux bör kommandot sudo lsof -n -i :4444 | grep LISTEN visa alla processer som håller port 4444 öppen. Om du ersätter 4444 med en annan port som nämns i felmeddelandet bör samma information anges för den porten.

  • Du kanske saknar libncurses5-paketet på ditt Ubuntu 20.04-system. Om du ser ett felmeddelande, till exempel "fel vid inläsning av delade bibliotek: libncurses.so.5: kan inte öppna en delad objektfil: Ingen sådan fil eller katalog", ska du installera paketet på följande sätt:

    sudo add-apt-repository universe
    sudo apt-get install libncurses5
    
  • Om du försöker felsöka en app på hög nivå och två RTApps samtidigt med flera instanser av Visual Studio kan den andra förekomsten av Visual Studio inte ansluta till felsökaren. Du kan komma runt det här problemet genom att felsöka alla appar från en enda instans av Visual Studio, enligt beskrivningen i Felsökning av partnerprogram.

CMake-problem

Du kan stöta på följande problem när du använder CMake med en RTApp:

  • Första gången du öppnar ett CMake-projekt i Visual Studio körs genereringen av CMakeLists automatiskt och komponent-ID:t för programmet anges. Om du sedan tar bort komponent-ID: t.ex. eftersom programmet finns i en GitHub-repo och du har gjort en hård återställning, misslyckas versionen. Lös problemet genom att återskapa CMake-cachen i Visual Studio.
  • Det CMakeLists.txt startobjektet återskapas ofta. Aktiviteten CMakeLists körs när Visual Studio återskapar CMake-cachen. Därför kan den köras ofta.
  • Visual Studio hänger sig när du bygger en RTApp med CMake. Undvik det här problemet genom att använda Visual Studio 2019-uppdatering 1 eller senare.

Generellt sett kan du prova att återskapa CMake-cachen om fel uppstår när du arbetar med CMake. Det här löser ofta problem.