Udostępnij za pośrednictwem


Debugowanie aplikacji wysokiego poziomu

  1. Upewnij się, że urządzenie jest podłączone do komputera za pomocą portu USB. W menu Ustaw element startowy wybierz pozycję Azure Sphere App (HLCore), gdzie aplikacja Azure Sphere to nazwa bieżącej aplikacji wysokiego poziomu lub naciśnij klawisz F5.

    Przycisk Zdalny debuger GDB

  2. Jeśli zostanie wyświetlony monit o skonstruowanie projektu, wybierz pozycję Tak. Visual Studio kompiluje aplikację, tworzy pakiet obrazów, pobiera go na tablicę i uruchamia w trybie debugowania. Ładowanie bezpośrednie oznacza, że aplikacja jest dostarczana bezpośrednio z komputera za pośrednictwem połączenia przewodowego, a nie dostarczana przez chmurę.

    Zwróć uwagę na identyfikator obrazu pakietu obrazów wwynikuwyświetlenia> pokazuwyjściowego> z: dane wyjściowe kompilacji. Identyfikator obrazu zostanie użyty w dalszej części samouczka Samouczek: Tworzenie wdrożenia w chmurze.

  3. Domyślnie w oknie Dane wyjściowe są wyświetlane dane wyjściowe z danych wyjściowych urządzenia. Aby wyświetlić wiadomości z debugera, wybierz debugowanie z menu rozwijanego Pokaż dane wyjściowe z . Możesz również sprawdzić dezasemblowanie programu, rejestry lub pamięć za pomocą menu Debugowanie>systemu Windows .

Następnie za pomocą debugera programu Visual Studio możesz ustawiać punkty przerwania, wstrzymywać działanie, przechodzić do kolejnych kroków, uruchamiać ponownie lub zatrzymywać aplikację.

Po zatrzymaniu w punkcie przerwania w kodzie źródłowym C można otworzyć okno Dezasembly pokazujące bieżący adres, mnemonic assembler dla bieżącego polecenia oraz informacje, takie jak rejestry lub wykonywane polecenie kodu źródłowego.

Aby otworzyć okno Dezasembly :

  1. Upewnij się, że plik źródła kodu C zawierający punkt przerwania jest otwarty w programie Visual Studio.
  2. Wybierz pozycję Debugowanie>demontażusystemu Windows> lub naciśnij klawisze Alt+8.
  1. Naciśnij klawisz F5, aby utworzyć i debugować projekt. Jeśli projekt nie został wcześniej utworzony lub pliki zostały zmienione i wymagane jest ponowne odbudowanie, Visual Studio Code utworze projekt przed rozpoczęciem debugowania.

  2. Poczekaj kilka sekund, aż Visual Studio Code zbudować aplikację, utworzyć pakiet obrazów, wdrożyć go na tablicy i uruchomić w trybie debugowania. Po drodze w okienku Dane wyjściowe będą wyświetlane aktualizacje stanu.

    Najpierw funkcja CMake określa, czy aplikacja musi zostać skonstruowana. Jeśli tak, fokus zostanie przeniesiony do okna wyjściowego, w którym zostaną wyświetlone dane wyjściowe Z CMake/Build.

    Następnie w okienku Dane wyjściowe jest wyświetlany wynik wdrożenia pakietu obrazów na urządzeniu. Konsola debugowania otrzymuje fokus i wyświetla dane wyjściowe debugera.

Za pomocą debugera Visual Studio Code możesz ustawiać punkty przerwania, wstrzymywać działanie, przechodzić do kolejnych kroków, uruchamiać ponownie lub zatrzymywać aplikację.

Po zatrzymaniu w punkcie przerwania w kodzie źródłowym C można otworzyć widok Dezasembly pokazujący bieżący adres, nieprzetworzone dane szesnastkowe, mnemonic assembler dla bieżącego polecenia oraz informacje, takie jak rejestry lub wykonywane polecenie kodu źródłowego.

Aby otworzyć widok Dezasembly:

  1. Upewnij się, że plik źródła kodu C zawierający punkt przerwania jest otwarty w edytorze Visual Studio Code.
  2. Kliknij prawym przyciskiem myszy w oknie edytora i wybierz pozycję Otwórz widok dezasembly lub wybierz polecenie Wyświetl>paletę> poleceńOtwórz widok dezasembly.

Aby debugować aplikację, zatrzymaj ją, a następnie uruchom ponownie za pomocą debugowania:

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

Powinien zostać wyświetlony następujący komunikat:

<ComponentID>
App state   : debugging
GDB port    : 2345
Output port : 2342
Core        : High-level
Command completed successfully in 00:00:00.9121174.
  1. Otwórz wiersz polecenia i użyj dowolnego klienta terminalu systemu Windows, aby ustanowić połączenie Telnet lub raw TCP w celu odczytania strumienia wyjściowego z procesu. Jako port określ wartość 192.168.35.2 jako adres IP, a numer 2342.

  2. Otwórz interfejs wiersza polecenia przy użyciu programu PowerShell, wiersza polecenia systemu Windows lub powłoki poleceń systemu Linux. Uruchom debuger wiersza polecenia gdb :

    Wiersz polecenia systemu 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
    

    Uwaga

    Zestaw SDK Azure Sphere jest dostarczany z wieloma sysrootami , dzięki czemu aplikacje mogą kierować różne zestawy interfejsów API, zgodnie z opisem w wersji środowiska wykonawczego aplikacji, sysrootach i interfejsach API beta. Sysroots są instalowane w folderze instalacji Azure Sphere SDK w obszarze Sysroots.

  3. Ustaw dla celu debugowania zdalnego adres IP 192.168.35.2 na porcie 2345:

    target remote 192.168.35.2:2345
    
  4. Uruchom dowolne polecenia gdb , które wybierzesz. Na przykład:

    break main
    
    c
    

    The break and c commands set a breakpoint on entry to main() and then continue execution after the breakpoint, respectively. Dostępne są liczne źródła dokumentacji dla gdb.