Azure Sphereの開発・デバッグはVisual Studioが使えるので、gdbでやりたい人は少ないと思いますが、、、
gdbでも可能です。
デバイスをデバッグ可能にする
azsphere device prep-debug
コマンドで、デバイスのデバッグを有効にします。
このとき、設定変更とともに、デバイスにgdbserverがインストールされます。
C:\>azsphere device prep-debug
イメージをデバイスに書き込む
azsphere device sideload delete
コマンドでインストールされているイメージを削除してから、azsphere device sideload deploy
コマンドでイメージをデバイスに書き込みします。
C:\>azsphere device sideload delete
C:\>azsphere device sideload deploy -m -p Mt3620App1.imagepackage
デバッグモードでアプリケーションを起動する
azsphere device sideload start
コマンドに-dオプションを付けて、デバッグモードでアプリケーションを起動します。このとき、Component IDを指定しなければいけないので、azsphere device sideload show-status
で確認します。
アプリケーション起動といっても、ここではアプリケーションは実行開始されません。デバッグ開始可能な状態になります。
この例では、Component IDは
8fdb970b-cd84-44ae-9f83-fdcd70deef28
です。
C:\>azsphere device sideload show-status
8fdb970b-cd84-44ae-9f83-fdcd70deef28: App state: stopped
Command completed successfully in 00:00:01.4743683.
C:\>azsphere device sideload start -d -i 8fdb970b-cd84-44ae-9f83-fdcd70deef28
8fdb970b-cd84-44ae-9f83-fdcd70deef28
App state : debugging
GDB port : 2345
Output port : 2342
Command completed successfully in 00:00:01.3325013.
C:\>
出力ウィンドウをモニタリング
TeraTermなどを使って、192.168.35.2:2342をモニタ開始しておきます。
gdbでアプリケーションを実行開始する
arm-poky-linux-musleabi-gdb
コマンドでgdbを起動し、target
、c
でアプリケーションを実行開始します。
C:\>arm-poky-linux-musleabi-gdb Mt3620App1.out
(gdb) target remote 192.168.35.2:2345
(gdb) c
Continuing.
まとめ
- Azure Sphereの開発・デバッグにgdb使うことができる。
- 出力ウィンドウのデリミタはLF。
- TeraTermなどで一度接続すると、再度デバッグモードで起動しないと再接続できない。