高度なアプリケーションをデバッグする

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

  1. 使用するデバイスが USB で PC に接続されていることを確認します。 [ Set スタートアップ項目 メニューで、 Azure Sphere App (HLCore) を選択します。ここで、 Azure Sphere App は現在の高度なアプリケーションの名前であるか、 F5 キーを押します。

    [リモート GDB デバッガー] ボタン

  2. プロジェクトをビルドするためのメッセージが表示されたら、[はい] を選択します。 Visual Studio により、アプリケーションがコンパイルされ、イメージ パッケージが作成され、ボードに "サイドローディング" されて、デバッグ モードで開始されます。 "サイドローディング" とは、アプリケーションが、クラウド経由で配信されるのではなく、有線接続経由で PC から直接配信されることを意味します。

    View>Output>Show 出力のイメージ パッケージのイメージ ID を書き留めます: Build出力。 イメージ ID は、後で「 Tutorial: クラウド デプロイを作成するで使用します。

  3. 既定では、 Output ウィンドウに Device Output からの出力が表示されます。 デバッガーからのメッセージを表示するには、[出力元] ドロップダウン メニューで [デバッグ] を選択します。 [デバッグ]>[Windows] メニューからは、プログラムの逆アセンブリ、レジスタ、またはメモリを調べることもできます。

その後、 Visual Studio デバッガー を使用して、ブレークポイントの設定、一時停止、ステップ オーバー、ステップ イン、再起動、またはアプリケーションの停止を行うことができます。

C ソース コードのブレークポイントで停止している間、現在のアドレス、現在のコマンドのアセンブラーニーモニック、実行中のレジスタやソース コード コマンドなどの情報を示す Disassembly ウィンドウを開くことができます。

Disassembly ウィンドウを開くには:

  1. ブレークポイントを含む C コード ソース ファイルが Visual Studio で開かれていることを確認します。
  2. Debug>Windows>Disassembly を選択するか、Alt + 8 キーを押します。
  1. F5 キーを押してプロジェクトをビルドおよびデバッグします。 プロジェクトが以前にビルドされていない場合、またはファイルが変更され、再構築が必要な場合、Visual Studio Code はデバッグを開始する前にプロジェクトをビルドします。

  2. Visual Studio Code がアプリケーションをビルドし、イメージ パッケージを作成してボードにデプロイし、デバッグ モードで起動するまで数秒待ちます。 途中で Output ペインに状態の更新が表示されます。

    まず、CMake は、アプリケーションをビルドする必要があるかどうかを判断します。 その場合は、フォーカスが出力ウィンドウに移動し、CMake/Build からの出力が表示されます。

    次に、 Output ペインに、イメージ パッケージがデバイスに展開されるときに結果が表示されます。 最後に、デバッグ コンソールがフォーカスを受け取り、デバッガーの出力を表示します。

Visual Studio Code デバッガーを使用してブレークポイントの設定、一時停止、ステップ オーバー、ステップ イン、再起動、またはアプリケーションの停止を行います。

C ソース コードのブレークポイントで停止している間に、現在のアドレス、生の 16 進データ、現在のコマンドのアセンブラーニーモニック、関連するレジスタや実行されているソース コード コマンドなどの情報を示す逆アセンブル ビューを開くことができます。

逆アセンブル ビューを開くには:

  1. ブレークポイントを含む C コード ソース ファイルが Visual Studio Code エディターで開かれていることを確認します。
  2. エディター ウィンドウで右クリックし、[逆アセンブリ ビューを開くを選択するか表示>コマンド パレット>逆アセンブリ ビューを開くを選択します。

アプリケーションをデバッグするには、アプリケーションを停止し、デバッグで再起動します。

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

次のような結果が表示されます。

<ComponentID>
App state   : debugging
GDB port    : 2345
Output port : 2342
Core        : High-level
Command completed successfully in 00:00:00.9121174.
  1. コマンド プロンプトを開き、Windows ターミナル クライアント を使用して、プロセスから出力ストリームを読み取る Telnet または未加工の TCP 接続を確立します。 IP アドレスに 192.168.35.2、ポートに 2342 を指定します。

  2. PowerShell、Windows コマンド プロンプト、または Linux コマンド シェルを使用して、コマンド ライン インターフェイスを開きます。 gdb コマンドライン デバッガーを起動します。

    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
    

    Note

    Azure Sphere SDK には複数の sysroots が付属しているため、アプリケーションは、 Application ランタイム バージョン、sysroots、および Beta API で説明されているように、異なる API セットをターゲットにすることができます。 sysroot は、Azure Sphere SDK インストール フォルダーの Sysroots の下にインストールされます。

  3. リモート デバッグ ターゲットをポート 2345 の IP アドレス 192.168.35.2 に設定します。

    target remote 192.168.35.2:2345
    
  4. 選択した任意の gdb コマンドを実行します。 次に例を示します。

    break main
    
    c
    

    break および c コマンドはそれぞれ、エントリ上のブレークポイントを main() に設定して、ブレークポイント以降の実行を続けます。 gdb に対する多数のドキュメント ソースが利用可能です。